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.