Laporan Struktur Data Modul 11 – Stack dengan Array

 

TUJUAN

Mahasiswa mampu menerapkan konsep stack dengan array

Percobaan 1: Basic Stack

 

Salin dan jalankan coding berikut ini kemudian beri komentar pada setiap baris coding.

#define MAX 5

main()

{

    int tinggi_badan[MAX], indeks;




    for(indeks=0;indeks=0;indeks--)

    {

        printf("Tinggi mahasiswa ke-%d adalah %d\n",indeks+1,tinggi_badan[indeks]);

    }

}

Dari percobaan yang telah dilakukan, jawab pertanyaan berikut ini:

  1. Tampilkan hasil program setelah dijalankan

1

 

  1. Gambarkan urutan stack hasil dalam bentuk kotak-kotak array dari data yang telah diinputkan
150
140
130
120
110

 

  1. Pada indeks array berapa data yang pertama kali diinputkan muncul?
    Terakhir
  2. Pada indeks array berapa data yang terakhir kali diinputkan muncul?
    Pertama
  3. Konsep apa yang digunakan pada stack ini (FILO/FIFO)?
    FILO
  4. Modifikasi program tersebut sehingga bisa menampilkan data stack dalam array untuk tipe data char (Nama Mahasiswa)
#define MAX 5

main()

{

    char nama[MAX][999];

int indeks;




    for(indeks=0;indeks=0;indeks--)

    {

        printf("Nama ke-%d adalah %s\n",indeks+1,nama[indeks]);

    }

}

 

2

Latihan 1: Top dan Push dan Pop

 

  1. Modifikasi program percobaan 1 sehingga bisa menampilkan informasi Top [10].
    1
#define MAX 5

main()

{

    int tinggi_badan[MAX], indeks;




    for(indeks=0;indeks=0;indeks--)

    {

        printf("Tinggi mahasiswa ke-%d adalah %d\n",indeks+1,tinggi_badan[indeks]);

    }







}

 

 

 

  1. Tambahkan fungsi Push pada program percobaan 1. Kemudian, buatlah coding untuk perintah tersebut sehingga fungsi Push bisa bekerja sesuai teorinya. Fungsi Push berfungsi untuk menambah data tinggi badan baru pada indeks Top+1 [20].
    2
#define MAX 5

#include

#include

main()

{

    int tinggi_badan[MAX],temp, indeks;

    char q[2];




    for(indeks=0;indeks=0;temp--)

    {

        printf("Tinggi mahasiswa ke-%d adalah %d\n",temp+1,tinggi_badan[temp]);

    }

    printf("Push data pada stack? (y/n) :");gets(q);

    if (strcmp(q,"y")==0)

    {

        indeks=indeks+1;

        printf("\nMasukkan tinggi mahasiswa ke-%d : ",indeks);

        scanf("%d",&tinggi_badan[indeks]);







        printf("\n\nTop = %d\n",indeks);

        printf("Setelah dilakukan push maka data stack terbaru adalah : \n");

        for (temp=indeks-1;temp>=0;temp--)

        {

            printf("Tinggi mahasiswa ke-%d adalah %d\n",temp+1,tinggi_badan[temp]);

        }

    }

    else

    {

        exit(0);

    }

}


 

  1. Tambahkan fungsi Pop pada program percobaan 1. Kemudian, buatlah coding untuk perintah tersebut sehingga fungsi Pop bisa bekerja sesuai teorinya. Fungsi Pop berfungsi mengosongkan data tinggi badan pada indeks Top [20].
    3
#define MAX 5

#include

#include

main()

{

    int tinggi_badan[MAX],temp, indeks;

    char q[2];




    for(indeks=0;indeks=0;temp--)

    {

        printf("Tinggi mahasiswa ke-%d adalah %d\n",temp+1,tinggi_badan[temp]);

    }

    printf("Pop data pada stack? (y/n) :");gets(q);

    if (strcmp(q,"y")==0)

    {

        temp=indeks-1;

        tinggi_badan[indeks-1]=0;




        printf("\n\nTop = %d\n",temp);

        while(temp >0)

        {

            printf("Tinggi mahasiswa ke-%d adalah %d\n",temp,tinggi_badan[temp-1]);

            temp=temp-1;

        }

    }

    else

    {

        exit(0);

    }
















}

 

 

 

  1. Tambahkan fungsi notifikasi IsFull ketika Push dilakukan pada Array yang sudah penuh [20]
    4
  1. Tambahkan fungsi notifikasi IsEmpty ketika Pop dilakukan pada Array yang sudah kosong [20]

    5

  2. Tambahkan fungsi Clear untuk mengosongkan semua isi array [10].

6


#define MAX 2

#include

#include

int tinggi_badan[MAX], indeks,temp;

main()

{




    for(indeks=0;indeks=0;temp--)

    {

        printf("Tinggi mahasiswa ke-%d adalah %d\n",temp+1,tinggi_badan[temp]);

    }

    menu();

}




push()

{

    system("cls");

    if(indeks==MAX)

    {

        printf("Stack directory sudah penuh. Tidak dapat push data.\n");

        system("pause");

        system("cls");

        menu();




    }

    else

    {

        indeks=indeks+1;

        printf("Masukkan tinggi mahasiswa ke-%d : ",indeks);

        scanf("%d",&tinggi_badan[indeks-1]);

        system("cls");

        menu();




    }

}




pop()

{

    system("cls");

    if(indeks==0)

    {

        printf("Stack directory sudah kosong. Tidak dapat pop data.\n");

        system("pause");

        system("cls");

        menu();




    }

    else

    {

        indeks=indeks-1;

        //printf("%d - %d\n\n",indeks,tinggi_badan[indeks-1]);

        printf("Data telah di pop.\n\n");

        system("pause");

        system("cls");

        menu();

    }

}




top()

{

    system("cls");

    printf("\nTop = %d\n",indeks);

    menu();

}




clear()

{

    for(temp=0;temp

Share

One thought on “Laporan Struktur Data Modul 11 – Stack dengan Array”

Tinggalkan Balasan