Rangkuman Algoritma dan Struktur Data


Hai Teman-Teman  Perkenalkan Nama Saya Mochtar Kusuma Putra, Dari Jurusan Teknik Informatika dan hari ini saya akan menjelaskan tentang apa itu Algoritma dan Struktur Data
struktur data adalah cara menyimpan atau merepresentasikan data di dalam komputer agar bisa dipakai secara efisien. Sedangkan data adalah representasi dari fakta dunia nyata
Contoh pendefinisian tipe data
Struktur adalah : struct
Data_tanggal
{int tanggal;
Masing-masing tipe dari elemen struktur dapat berlainan. Adapun variable_struktur1 sampai dengan variable_struktur M menyatakan bahwa variable struktur yang dideklarasikan bisa lebih dari satu. Jika ada lebih dari satu variable, antara variable struktur dipisahkan dengan tanda koma.
Mengakses Elemen Struktur:
Elemen dalam struktur dapat diakses dengan mengguanakan bentuk:
Variable_struktur.nama_field
Antara variable_struktur dab nama_field dipisahkan dengan oprator titik (disebut oprator anggota struktur). Contoh berikut merupakan intruksi untuk mengisikan data pada file tanggal:
     Tgl_lahir.tanggal=30 int bulan;
Int tahun;
};
Yang mendefinisikan tipe bernama data_tanggal, yang terdiri dari tiga buah elemen berupa tanggal, bulan, dan tahun. Bentuk umum dalam mendefenisikan struktur adalah :
Struct nama_tipe_struktur
{
Tipefiled1; tipefiled2; tipefiled3;
}variable_struktur….v
Lembar Kerja dan Tugas

1.  Program pangkat dengan array dimensi satu

#include <stdio.h>
#include <iostream>
#include <conio.h>
using namespace std;
int main(){
            int square[100];
            int i;
            int k;
            for (i=0; i<10; i++){
                        k = i+1;
                        square[i] = k*k;
                        printf("\n pangkat dari %d adalah %d ", k, square[i]);
            }
            getch();
}
Hasil Output :
Pokok Bahasan 2

Linked List (senarai)

1.      Contoh program sisip senarai (linked list)

#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
using namespace std;
typedef struct nod{
            int data;
            struct nod *next;
} NOD, *NODPTR;
void Ciptasenarai(NODPTR *s)
{
            *s = NULL;
}
NODPTR NodBaru(int m)
{
            NODPTR n;
            n = (NODPTR) malloc (sizeof(NOD));
            if (n!=NULL)
            {
                        n->data=m;
                        n->next=NULL;
            }
            return n;
}
void SisiSeranai(NODPTR *s, NODPTR t, NODPTR p)
{
            if(p==NULL)
            {
                        t->next=*s;
                        *s=t;
            }
            else
            {
                        t->next=p->next;
                        p->next=t;
            }
}
void CetakSeranai(NODPTR s)
{
            NODPTR ps;
            for(ps=s; ps!=NULL; ps=ps->next)
                        printf("%d --> ",ps ->data);
                        printf("NULL \n");
}
int main()
{
            NODPTR pel;
            NODPTR n;

            Ciptasenarai(&pel);
            n=NodBaru(55);
            SisiSeranai(&pel, n, NULL);
            n=NodBaru(75);
            SisiSeranai(&pel, n, NULL);
            CetakSeranai(pel);
            getch();
}

Hasil Output :


Pokok Bahasan 3
Stack (Tumpukan)
1.     Program Stack

#include <stdio.h>
#include <conio.h>
#include <iostream>
#define MAXSTACK 3
typedef int itemType;
typedef struct
{
            int item [MAXSTACK];
            int jml;
} Stack;
void init(Stack *s)
{
            s->jml=0;
}
int kosong(Stack *s)
{
            return (s->jml==0);
}
int penuh(Stack *s)
{
            return (s->jml==MAXSTACK);
}
void isi(itemType x, Stack *s)
{
            if(penuh(s))
                        printf("\nMAAF!!! Data PENUH\n");
            else{
                        s->item[s->jml]=x;
                        ++(s->jml);
            }
}
void ambil(Stack *s, itemType *x)
{
            if(kosong(s))
            printf("\nMAAF Data Kosong\n");
            else
            {
                        --(s->jml);
                        *x=s->item[s->jml];
                        s->item[s->jml]=0;
                        printf("\Data %i Berhasil Diambil\n",*x);
            }
}
void tampil(Stack *s)
{
            if(kosong(s))
            printf("\Maaf Data Masih Kosong\n");
            else
                        printf("\n");
                                    for(int i=s->jml-1;i>=0;i--)
                                    {
                                                printf("Data: %d\n",s->item[i]);
                                    }
}
void hapus(Stack *s)
{
            s->jml=0;
            printf("\nSemua Data Berhasil Dihapus\n");
}
int main()
{
            int pil;
            Stack tumpukan;
            itemType data;
            init(&tumpukan);
            do{
                        printf("\nMENU: \n 1. Isi (Data Angka)\n 2. Ambil\n 3. Lihat\n 4. Hapus (Hapus Semua Data)\n 5. Keluar\n");
                        printf("\n");
                        printf("Masukkan Pilihan : "); scanf("%i",&pil);

                        switch(pil)
                        {
                                    case 1:
                                                printf("\nMasukkan Data Angka : "); scanf("%i",&data);;
                                                isi(data,&tumpukan);
                                                break;
                                    case 2:
                                                ambil(&tumpukan,&data);
                                                break;
                                    case 3 :
                                                tampil(&tumpukan);
                                                break;
                                    case 4 :
                                                hapus(&tumpukan);
                                                break;
                        }
            }while(pil!=5);
            getch();
}

Hasil Output :

Pokok  Bahasan 4
Queue (Antrian)
1.        Program Queue Statis:
#include <queue>
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
     queue <int> que;
     que.push(10);
     que.push(2);
     que.push(3);

     cout<<"Paling depan : "<<que.front()<<endl;
     cout<<"Paling belakang : "<<que.back()<<endl;

     que.pop();
     cout<<"10 sudah dikeluarkan"<<endl;
     cout<<"Palig depan : "<<que.front()<<endl;
     cout<<"Paling belakang : "<<que.back()<<endl;

     que.push(6);
     cout<<"Angka 6 dimasukkan"<<endl;
     cout<<"Paling depan : "<<que.front()<<endl;
     cout<<"Paling belakang : "<<que.back()<<endl;

     _getch();
}
Hasil Output>>

Pokok Bahasan 5
Rekursif
1. Program Bilangan Genap dan Bilangan Ganjil.
#include <iostream>
#include <conio.h>
using namespace std;

void odd (int a);
void even(int a);

void main(void)
{
int i;
do
{
cout<<"Masukkan Bilangan 1 - 9 (0 untuk keluar) : \n";
cin>>i;
odd(i);
cout<<endl;
} while (i!=0);
_getch();
}

void odd(int a)
{
if ((a%2) !=0) cout << "Bilangan GANJIL \n";
else
even (a);
}

void even(int a)
{
if ((a%2) ==0) cout << "Bilangan GENAP \n";
else
odd (a);
}
Hasil Output>>

Pokok Bahasan 6
Sorting (Pengurutan)
1. Program ascending dengan menggunakan bubble sort
#include <iostream>
#include <conio.h>
#include <iomanip>

using namespace std;

void main (void)
{
int dataku[]={5,34,32,25,75,42,2};
int adaPertukaran;
int n;

cout << "Data BELUM diurutkan : \n";

for (int ctr = 0; ctr<7; ctr++)
{
cout << setw(3) << dataku[ctr];
}

cout << endl << endl;

do {
adaPertukaran = 0;

for (int i =0; i < 7-1; i++){
if (dataku[i+1]<dataku[i]){
n= dataku[i];
dataku[i] = dataku[i+1];
dataku[i+1]= n;
adaPertukaran =1;
}
}
}while (adaPertukaran ==1);

cout << "Data SETELAH diurutkan : \n";
for (int i =0; i < 7; i++){
cout << dataku[i];
cout << " ";
}
_getch();
}
Hasil Output>>
Sekian yang bisa saya jelaskan tentang algoritma dan struktur data, bila ada salah salah kata mohon dimaafkan.

0 komentar:

Posting Komentar

top