Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <stdlib.h>
- #include <string.h>
- using namespace std;
- struct node{
- char npm[20];
- char nama[20];
- char alamat[20];
- char jurusan[20];
- char kelas[20];
- node *next;
- };
- node *depan,*belakang, *baru, *posisi, *bantu;
- bool mulaiLinkedlist(){
- if(depan==NULL){
- return true;
- }
- else {
- return false;
- }
- }
- void tambahdDepan(){
- if(mulaiLinkedlist()){
- belakang = baru;
- }
- else{
- baru->next = depan;
- }
- depan=baru;
- }
- void tambahdBelakang(){
- if(mulaiLinkedlist()){
- depan = baru;
- }
- else{
- belakang->next = baru;
- }
- belakang=baru;
- }
- void tambahTengah(){
- int letak;
- cout<<"\nMenyisipkan data ke posisi berapa = ";cin>>letak;
- baru->next=NULL;
- posisi=depan;
- for(int i = 1; i<letak; i++){
- bantu=posisi;
- posisi=posisi->next;
- }
- bantu->next=baru;
- baru->next=posisi;
- }
- void tambahnama(){
- char nama[20];
- cout<<"\nMenyisipkan setelah nama = ";cin.getline(nama, 20);
- baru->next=NULL;
- posisi = depan;
- while(posisi!= NULL){
- bantu=posisi;
- posisi=posisi->next;
- if((bantu==depan) && (strcmp(nama, bantu->nama)==0)){
- bantu->next = baru;
- baru->next = posisi;
- break;
- }
- else if(strcmp(nama, bantu->nama)==0){
- if(posisi==belakang){
- belakang->next = baru;
- belakang=baru;
- break;
- }
- else{
- bantu->next=baru;
- baru->next = posisi;
- break;
- }
- }
- }
- }
- void hapusDepan(){
- posisi=depan;
- depan=posisi->next;
- posisi=NULL;
- cout<<"Data Ilang";
- }
- void hapusTengah(){
- int input,letak;
- cout<<"Masukan data ke posisi berapa = ";cin>>input;
- posisi = depan;
- letak = input;
- for(int i=1; i<letak; i++){
- bantu = posisi;
- posisi = posisi->next;
- }
- bantu->next=posisi->next;
- posisi = NULL;
- cout<<"\nData Terhapus";
- }
- void hapusBelakang(){
- posisi = depan;
- while(posisi->next->next != NULL){
- posisi = posisi->next;
- }
- belakang = posisi;
- posisi->next = NULL;
- cout<<"\nData Terhapus";
- }
- void tambahData(){
- baru = new node;
- baru->next = NULL;
- cin.ignore();
- cout<<"Masukan Nama anda = ";cin.getline(baru->nama, 20);
- cout<<"Masukan NPM anda = ";cin.getline(baru->npm, 20);
- cout<<"Masukan Alamat anda = ";cin.getline(baru->alamat, 20);
- cout<<"Masukan Jurusan anda = ";cin.getline(baru->jurusan, 20);
- cout<<"Masukan Kelas anda = ";cin.getline(baru->kelas, 20);
- }
- void tampilData(){
- char lihat;
- int data = 1;
- if(mulaiLinkedlist()){
- cout<<"\nData Kosong";
- }
- else{
- posisi = depan;
- while (posisi!=NULL){
- // cout<<"\nData Ke posisi - "<<data;
- cout<<"\nNama anda = "<<posisi->nama;
- cout<<"\nNPM anda = "<<posisi->npm;
- cout<<"\nAlamat anda = "<<posisi->alamat;
- cout<<"\nJurusan anda = "<<posisi->jurusan;
- cout<<"\nKelas anda = "<<posisi->kelas;
- cout<<"\nLihat Posisi Selanjutnya = ";cin>>lihat;
- if(lihat=='y'){
- posisi = posisi->next;
- // data++;
- }
- else{
- break;
- }
- }
- }
- }
- int main()
- {
- int menu;
- char ulang;
- do{
- mulaiLinkedlist();
- cout<<"\nMenu";
- cout<<"\n1. Tambah Depan";
- cout<<"\n2. Tambah Tengah";
- cout<<"\n3. Tambah Belakang";
- cout<<"\n4. Hapus Depan";
- cout<<"\n5. Hapus Tengah";
- cout<<"\n6. Hapus Belakang";
- cout<<"\n7. Tampil";
- cout<<"\n8. Tambah setelah Nama";
- cout<<"\nMasukan Pilihan anda = ";cin>>menu;
- switch(menu){
- case 1:
- tambahData();
- tambahdDepan();
- break;
- case 2:
- tambahData();
- tambahTengah();
- break;
- case 3:
- tambahData();
- tambahdBelakang();
- break;
- case 4:
- hapusDepan();
- break;
- case 5:
- hapusTengah();
- break;
- case 6:
- hapusBelakang();
- break;
- case 7:
- tampilData();
- break;
- case 8:
- tambahData();
- tambahnama();
- break;
- }
- cout<<"\nUlang = Y";cin>>ulang;
- system("cls");
- }while(ulang=='y');
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement