Daftar Blog Saya

Senin, 28 September 2020

TUGAS MATA KULIAH STRUKTUR DATA Pertemuan ke-10 " Animasi Stack Menggunakan Linked List "

Bismillah, 

Assalamualaikum Wr.Wb.


Hello My Name Is Alif Yoga Prasetya 😉

Disini Saya Akan Membagikan Tugas Perkuliahan Dengan Mata Kuliah " Struktur Data "



SOAL :


TUGAS I:

Buat program animasi Stack menggunakan Linked List untuk mengelola data 

mahasiswa dengan struktur mahasiswa sbb : NAMA, NIM, GENDER, NILAI 

STRUKTUR DATA. Program dibuat dalam bentuk menu dengan pilihan : INSERT 

DATA, HAPUS DATA, CETAK DATA, EXIT

TUGAS II :

Buat program animasi Stack menggunakan Linked List tanpa Head untuk 

mengelola data mahasiswa dengan struktur mahasiswa sbb : NAMA, NIM, 

GENDER, NILAI STRUKTUR DATA. Program dibuat dalam bentuk menu dengan 

pilihan : INSERT DATA, HAPUS DATA, CETAK DATA, EXIT


JAWABAN :


CONTOH SOURCE CODE PROGRAM TUGAS 1


#include <iostream>

#include <conio.h>

#include <iomanip> //setw()

using namespace std;

struct Data_node

{

       char nama[25];

       char kelas[7];

       char nim[10];

};

struct node

{

      Data_node data;

      node* next;

};

node* _head;

node* _tail;

node* _curr;

node* _entry;

node* _del;

void inisialisasi()

{

      _head = NULL;

      _tail = NULL;

}

void input(Data_node dt)

{

      _entry = (node* )malloc(sizeof(node)); //alokasi memori

      _entry->data = dt; //penugasan struktur

      _entry->next = NULL;

      if(_head==NULL)

      {

            _head = _entry;

            _tail = _head;

      }

      else

      {

            _tail->next = _entry;

            _tail = _entry;

      }

}

void hapus()

{

      node _simpan;

      if(_head==NULL)

      {

            cout<<"\nLinked list kosong, penghapusan tidak bisa dilakukan."<<endl;

      }

      else

      {

            _simpan.data  = _head ->data;

           cout<<"\nData yang dihapus adalah ";

cout<<_simpan.data.nama<<"/"<<_simpan.data.kelas<<"/"<<_simpan.data.nim<<endl;

            //hapus depan

            _del = _head;

            _head = _head->next;

            delete _del;

      }

}

void cetak()

{

      _curr = _head;

      if(_head == NULL)

            cout<<"\ntidak ada data dalam linked list"<<endl;

      else

      {

            cout<<"\nData yang ada dalam linked list : \n"<<endl;

            cout<<"\t";

            while(_curr!=NULL)

            {

                cout<<_curr->data.nama<<"/"<<_curr->data.kelas<<"/"<<_curr->data.nim;

                cout<<" -> ";

                _curr = _curr->next;

            }

            cout<<"NULL";

            cout<<endl;

      }

}

void menu()

{

      char pilih, ulang;

      node tmp; 

      do

      {

      fflush(stdin);

      system("cls");

      cout<<"LIN SINGLY LINKED LIST"<<endl;

      cout<<"-------------------------------"<<endl;

      cout<<"Menu : "<<endl;

      cout<<"1. Insert 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' :

            /*

              Pada bagian ini nilai input disimpan pada struct data 

               yang ada pada struct tmp (tmp.data).

              Kemudian tmp.data digunakan sebagai parameter untuk- 

               memanggil fungsi input()

            */

            fflush(stdin);

            cout<<"\nMasukkan nama  : ";

            cin>>tmp.data.nama;

            cout<<"Masukkan Gender : ";

            cin>>tmp.data.kelas;

            cout<<"Masukkan NIM   : ";

            cin>>tmp.data.nim;

            input(tmp.data);

            break;

      case '2' :

            hapus();

            break;

      case '3' :

            cetak();

            break;

      case '4' :

            exit(0);

            break;

      default :

            cout<<"\nPilihan salah"<<endl;

      }

      cout<<"\nKembali ke menu?(y/n)";

      cin>>ulang;

   }while(ulang=='y' || ulang=='Y');

}

int main()

{

      inisialisasi();

      menu();

      return EXIT_SUCCESS;

}


CONTOH PROGRAM TUGAS 2


#include <iostream>

#include <conio.h>

#include <iomanip> //setw()

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;

void inisialisasi()

{

      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

      {

            simpan  = head ->data;

            //hapus depan

            del = head;

            head = head->next;

            delete del;

           

            cout<<"\ndata yang dihapus adalah "<<simpan<<endl;

      }

}

void cetak()

{

      curr = head;j

      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<<"NULL";

            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"<<e

ndl;

      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');

}

int main()

{

      inisialisasi();

      menu();

      return EXIT_SUCCESS;

}


TAMPILAN OUTPUT 1 & 2


INSERT DATA



CETAK DATA



HAPUS DATA



EXIT





Wa'alaikumussalam Warahmatullahi Wabarakatuh 😎









Tidak ada komentar:

Posting Komentar

Catatan: Hanya anggota dari blog ini yang dapat mengirim komentar.

TUGAS STRUKTUR DATA PERTEMUAN KE-4 " STACK (TUMPUKKAN) "

Bismillah,  Assalamualaikum Wr.Wb. Hello My Name Is Alif Yoga Prasetya 😉 Disini Saya Akan Membagikan Tugas Perkuliahan Dengan Mata Kuliah &...