inilah adalah contoh sederhana struktur data dengan menggunakan flochart berikut dengan programnya....
(epenta brahmana)
1. Modul
: I (Satu)
2. Materi
: Array
3. Judul :
Matriks
4.
Masalah : Buatlah
Program untuk membaca
dua buah matriks Amxn dan
matrisk Bkxl kemudian
menghitung perjumlahan dan pengurangan kedua matriks serta mengalikan kedua matriks.
Perhatikan bahwa dua buah matriks dapat dijumlahkan dan dikurangkan jika
mempunyai ordo sama (m=k dan n=l) dan dua buah matriks dapat dikalikan jika
kolom matriks pertama sama dengan baris matriks kedua (n=k).
5. Deskripsi
Masalah :
1.
Listing Program :
#include
<conio.h>
#include
<iostream.h>
int main ()
{
int
m1[100][100],m2[100][100],m3[100][100],baris,kolom,a,b,c,d;
cout<<"\n\t\t\t<<
Penjumlahan Matriks >>";
cout<<"\n\n\tMasukkan jumlah
baris : "; cin>>baris;
cout<<"\n\n\tMasukkan jumlah
kolom : "; cin>>kolom;
//menginput matrik1
cout<<"\n\n>>> Matriks 1";
for(a=0;a<baris;a++){
cout<<"\n\t";
for(b=0;b<kolom;b++){
cout<<"\nMasukkan data
indeks
"<<a+1<<","<<b+1<<" ="; cin>>m1[a][b];
}
}
cout<<endl;
//menginput matrik2
cout<<"\n\n>>> Matriks 2";
for(c=0;c<baris;c++){
cout<<"\n\t";
for(d=0;d<kolom;d++){
cout<<"\nMasukkan data
indeks =
"<<c+1<<","<<d+1<<" ="; cin>>m2[c][d];
}
}
cout<<endl;
//menampilkan matrik1
cout<<"\n\n>>> Matriks 1\n\n";
for(a=0;a<baris;a++){
cout<<"\n\t";
for(b=0;b<kolom;b++){
cout<<m1[a][b];
}
}
cout<<"\n\n";
//menampilkan matrik2
cout<<"\n\n>>> Matriks 2\n\n";
for(c=0;c<baris;c++){
cout<<"\n\t";
for(d=0;d<kolom;d++){
cout<<m2[c][d];
}
}
cout<<endl;
//untuk menghitung
penjumlahan
cout<<"\n\n >>>>
Hasil Penjumlahan Kedua Matriks <<<< \n\n";
for(a=0;a<baris;a++){
cout<<"\n\t";
for(b=0;b<kolom;b++){
m3[a][b]=m1[a][b]+m2[a][b];
cout<<m3[a][b];
}
}
//untuk menghitung pengirim
cout<<"\n\n >>>>
Hasil Pengurangan Kedua Matriks <<<< \n\n";
for(a=0;a<baris;a++){
cout<<"\n\t";
for(b=0;b<kolom;b++){
m3[a][b]=m1[a][b]-m2[a][b];
cout<<m3[a][b];
}
}
getch();
return 0;
}
2. Hasil
:
1.
Modul : I I (Dua)
2.
Materi : Structure
3.
Judul : Biodata
4. Masalah : Deklarasikan suatu structure BIODATA dengan
field-field NIM (char[10]), Nama (char[20]), Alamat (TINGGAL), Tgl_Lahir
(TANGGAL) dan IP (float). Structure TINGGAL terdiri dari field-field Jalan
(char[15]), Kota (char[10]), Kode_Pos (char[5]) dan structure TANGGAL terdiri
dari field-field Tgl (int), Bln (int) dan Thn(int). Buatlah Program
untuk membaca beberapa (N) mahasiswa kemudian cetak dalam suatu tabel
5. Deskripsi
Masalah :
1. Listing
Program :
#include<iostream.h>
#include<conio.h>
struct
alamat
{char
alamat[50], kota[40],kodepos[5];};
struct
data_tgl
{
int tgl,bln,thn;};
struct
teman
{
char nama[20];
char
j_kel[1];
float
IPK;
struct
data_tgl tgl;
struct
alamat alamat;};
struct
teman info;
main()
{
clrscr();
//input
data
cout<<"Masukkan
nama anda = ";cin>>info.nama;
cout<<"Jenis
kelamin anda =
";cin>>info.j_kel;
cout<<"Tanggal
lahir anda =
";cin>>info.tgl.tgl;
cout<<"Bulan
lahir anda =
";cin>>info.tgl.bln;
cout<<"Tahun
lahir anda =
";cin>>info.tgl.thn;
cout<<"Alamat
asal =
";cin>>info.alamat.alamat;
cout<<"Kota
Asal =
";cin>>info.alamat.kota;
cout<<"Kode
Pos =
";cin>>info.alamat.kodepos;
cout<<"IPK
Terakhir =
";cin>>info.IPK;
cout<<"";
cout<<"_________________________________________________\n";
cout<<"";
//output
data
cout<<"\nNama : "<<info.nama;
cout<<"\nJenis
Kelamin : "<<info.j_kel;
cout<<"\nTanggal
lahir :
"<<info.tgl.tgl<<"-"<<info.tgl.bln
<<"-"<<info.tgl.thn;
cout<<"\nAlamat :
"<<info.alamat.alamat<<"---"<<info.alamat.kota
<<"---"<<info.alamat.kodepos;
cout<<"\nIPK
Terakhir : "<<info.IPK;
cout<<"\n_______________________________________________";
getch();
}
8.Hasil
1.Modul : VI (Enam)
2.Materi : Singly Linked List
3.Judul : Simpul Terurut
Masalah : Buatlah program untuk
membentuk / menciptakan
suatu singly list,
dimana simpul harus selalu terurut setiap kali menyisipkan sekalipun
nilai atau elemen simpul dibaca secara acak.
4.Deskripsi Masalah :
5.Flowchart/Algoritma :
6.Listing
Program : #include<iostream.h>
#include<conio.h>
#include<stdlib.h>
#define true 1
#define false 0
typedef struct node
*simpul;
struct node
{
char Isi;
simpul next;
};
//======================
//==PROTOTYPE
FUNCTION==
//======================
void Sisip_Depan(simpul
&L,char elemen);
void
Sisip_Belakang(simpul &L,char elemen);
void
Sisip_Tengah1(simpul &L,char elemen1, char elemen2);
void
Sisip_Tengah2(simpul &L,char elemen1, char elemen2);
void
Hapus_Depan(simpul &L);
void
Hapus_Belakang(simpul &L);
void
Hapus_Tengah(simpul &L,char elemen);
void Cetak(simpul
L);
//=====================
//====FUNCTION
MAIN====
//=====================
main()
{
char huruf, huruf2;
simpul L=NULL; // Pastikan Bahwa L Kosong
int i;
cout<<"==OPERASI PADA SINGLE LINKED
LIST=="<<endl<<endl;
//===============
//==SISIP DEPAN==
//===============
cout<<"Penyisipan Simpul Di
Depan"<<endl<<endl;
cout<<"Masukkan
Huruf :"; cin>>huruf;
Sisip_Depan(L,huruf);
cout<<"Masukkan Huruf :";
cin>>huruf;
Sisip_Depan(L,huruf);
cout<<"Masukkan Huruf :";
cin>>huruf;
Sisip_Depan(L,huruf);
Cetak(L);
//=================
//==SISIP BELAKANG==
//==================
cout<<endl<<endl<<"Penyisipan Simpul Dibelakang
"<<endl<<endl;
cout<<"Masukkan Huruf
:"; cin>>huruf;
Sisip_Belakang(L,huruf);
cout<<"Masukkan Huruf :";
cin>>huruf;
Sisip_Belakang(L,huruf);
cout<<"Masukkan Huruf :";
cin>>huruf;
Sisip_Belakang(L,huruf);
Cetak(L);
//=======================================
//==SISIP SIMPUL SETELAH SIMPUL TERTENTU==
//========================================
cout<<endl<<endl<<"Masukkan Huruf :"; cin>>huruf;
cout<<"Disisip Setelah Huruf
:"; cin>>huruf2;
cout<<huruf<<"Disisip
Setelah "<<huruf2<<endl;
Sisip_Tengah1(L, huruf, huruf2);
Cetak(L);
//========================================
//==SISIP SIMPUL SEBELUM SIMPUL TERTENTU==
//========================================
cout<<endl<<endl<<"Masukkan Huruf :"; cin>>huruf;
cout<<"Disisip Sebelum Huruf
:"; cin>>huruf2;
cout<<huruf<<"Disisip
Sebelum "<<huruf2<<endl;
Sisip_Tengah2(L, huruf, huruf2);
Cetak(L);
//=========================
//==HAPUS SIMPUL DEPAN=====
//=========================
cout<<endl<<endl<<"Setelah
Hapus Simpul Depan "<<endl;
Hapus_Depan(L);
Cetak(L);
//=========================
//==HAPUS SIMPUL Belakang==
//=========================
cout<<endl<<endl<<"Setelah
Hapus Simpul Belakang "<<endl;
Hapus_Belakang(L);
Cetak(L);
//=========================
//==HAPUS SIMPUL TENGAH====
//=========================
cout<<endl<<endl<<"Masukkan
Huruf Tengah Yang Akan Dihapus :";
cin>>huruf;
Hapus_Tengah(L, huruf);
Cetak(L);
getch();
}
//*************************************
//***FUNCTION SISIP
SIMPUL DI DEPAN****
//*************************************
void
Sisip_Depan(simpul &L, char elemen)
{
simpul Baru; //=NEW SIMPUL;
Baru = (simpul) malloc(sizeof(simpul));
Baru->Isi = elemen;
Baru->next=NULL;
if(L == NULL)
L=Baru;
else
{
Baru->next=L;
L=Baru;
}
}
//***************************************************
//***FUNCTION SISIP
SIMPUL SETELAH SIMPUL TERTENTU***
//***************************************************
void Sisip_Tengah1(simpul
&L,char elemen1, char elemen2)
{
simpul bantu,Baru;
Baru= (simpul) malloc(sizeof(simpul));
Baru->Isi=elemen1;
Baru->next=NULL;
if(L==NULL)
cout<<"List
Kosong................."<<endl;
else
{
bantu=L;
while(bantu->Isi
!=elemen2)bantu=bantu->next;
Baru->next=bantu->next;
bantu->next=Baru;
}
}
//***************************************************
//***FUNCTION SISIP
SIMPUL SEBELUM SIMPUL TERTENTU***
//***************************************************
void
Sisip_Tengah2(simpul &L,char elemen1, char elemen2)
{
simpul bantu,Baru;
Baru= (simpul) malloc(sizeof(simpul));
Baru->Isi=elemen1;
Baru->next=NULL;
if(L==NULL)
cout<<"List
Kosong................."<<endl;
else
{
bantu=L;
while(bantu->next->Isi
!=elemen2)bantu=bantu->next;
Baru->next=bantu->next;
bantu->next=Baru;
}
}
//***************************************
//***FUNCTION SISIP
SIMPUL DI BELAKANG***
//***************************************
void
Sisip_Belakang(simpul &L,char elemen)
{
simpul bantu,Baru;
Baru= (simpul) malloc(sizeof(simpul));
Baru->Isi=elemen;
Baru->next=NULL;
if(L==NULL)
L=Baru;
else
{
bantu=L;
while(bantu->next !=NULL);
bantu=bantu->next;
bantu->next=Baru;
}
}
//***************************************
//***FUNCTION
MENCETAK ISI LINKED LIST***
//***************************************
void Cetak(simpul L)
{
simpul bantu;
if(L==NULL)
cout<<"Linked
List Kosong............"<<endl;
else
{
bantu=L;
cout<<"Isi Linked List
:";
while(bantu->next !=NULL)
{
cout<<bantu->Isi<<"-->";
bantu=bantu->next;
}
cout<<bantu->Isi;
}
}
//*********************************
//***FUNCTION HAPUS
SIMPUL DEPAN***
//*********************************
void
Hapus_Depan(simpul &L)
{
simpul hapus;
if(L==NULL)
cout<<"Linked
List Kosong............"<<endl;
else
{
hapus=L;
L=L->next;
hapus->next=NULL;
free(hapus);
}
}
//************************************
//***FUNCTION HAPUS
SIMPUL BELAKANG***
//************************************
void
Hapus_Belakang(simpul &L)
{
simpul bantu, hapus;
if(L==NULL)
cout<<"Linked
List Kosong............"<<endl;
else
{
bantu=L;
while(bantu->next->next !=NULL)
bantu=bantu->next;
hapus=bantu->next;
bantu->next=NULL;
free(hapus);
}
}
//*************************************
//***FUNCTION HAPUS
SIMPUL DI TENGAH***
//*************************************
void
Hapus_Tengah(simpul &L,char elemen)
{
simpul bantu, hapus;
if(L==NULL)
cout<<"Linked
List Kosong............"<<endl;
else
{
bantu=L;
while(bantu->next->Isi !=elemen)
bantu=bantu->next;
hapus=bantu->next;
bantu->next=bantu->next->next;
hapus->next=NULL;
free(hapus);
}
}
.Modul : VII (Tujuh)
2.Materi : Doubly Linked List
3.Judul : Angota Keluarga
Masalah : Buatlah program untuk
membentuk suatu doubly
list dimana setiap simpul menyatakan anak-anak dari suatu keluarga mulai
anak paling sulung hingga anak paling bungsu. Setiap simpul berisi informasi
Nama, Tempat dan Tgl_Lahir.
4.Deskripsi Masalah :

6.Listing Program :
//Contoh
Program Double Linked List anggota
keluarga
#include
<iostream.h>
#include
<conio.h>
#include
<stdio.h>
#include
<alloc.h>
int pil;
void pilih();
void buat_baru();
void tambah_belakang();
void tambah_depan();
void hapus_belakang();
void hapus_depan();
void tampil();
struct simpul
{
char nama[30], tempat [20];
int tgllahir;
struct simpul *kiri, *kanan;
} mhs, *baru, *awal=NULL,
*akhir=NULL,*hapus,*bantu;
int main()
{
do
{
clrscr();
cout<<"MENU DOUBLE
LINKEDLIST"<<endl;
cout<<"1. Tambah
Depan"<<endl;
cout<<"2. Tambah
Belakang"<<endl;
cout<<"3. Hapus
Depan"<<endl;
cout<<"4. Hapus
Belakang"<<endl;
cout<<"5.
Tampilkan"<<endl;
cout<<"6.
Selesai"<<endl;
cout<<"Pilihan Anda :
";
cin>>pil;
pilih();
} while(pil!=6);
return 0;
}
void pilih()
{
if(pil==1)
tambah_depan();
else if(pil==2)
tambah_belakang();
else
if(pil==3)
hapus_depan();
else if(pil==4)
hapus_belakang();
else if(pil==5)
tampil();
else
cout<<"selesai";
}
void buat_baru()
{
baru=(simpul*)malloc(sizeof(struct
simpul));
cout<<"input Nama : ";cin>>baru->nama;
cout<<"input Tempat : ";cin>>baru->tempat;
cout<<"input Tanggal Lahir : ";cin>>baru->tgllahir;
baru->kiri=NULL;
baru->kanan=NULL;
}
void tambah_belakang()
{
buat_baru();
if(awal==NULL)
{
awal=baru;
akhir=baru;
}
else
{
akhir->kanan=baru;
baru->kiri=akhir;
akhir=baru;
}
cout<<endl<<endl;
tampil();
}
void tambah_depan()
{
buat_baru();
if(awal==NULL)
{
awal=baru;
akhir=baru;
}
else
{
baru->kanan=awal;
awal->kiri=baru;
awal=baru;
}
cout<<endl<<endl;
tampil();
}
void hapus_depan()
{
if (awal==NULL)
cout<<"Kosong";
else if (awal->kanan==NULL)
{
hapus=awal;
awal=NULL;
akhir=NULL;
free(hapus);
}
else
{
hapus=awal;
awal=hapus->kanan;
awal->kiri=NULL;
free(hapus);
}
cout<<endl<<endl;
tampil();
}
void hapus_belakang()
{
if (awal==NULL)
cout<<"Kosong";
else if (awal->kanan==NULL)
{
hapus=awal;
awal=NULL;
akhir=NULL;
free(hapus);
}
else
{
hapus=akhir;
akhir=hapus->kiri;
akhir->kanan=NULL;
free(hapus);
}
cout<<endl<<endl;
tampil();
}
void tampil()
{
if (awal==NULL)
cout<<"Kosong";
else
{
bantu=awal;
while(bantu!=NULL)
{
cout<<"Nama :
"<<bantu->nama;
cout<<" Tempat : "<<bantu->tempat;
cout<<" Tanggal Lahir :
"<<bantu->tgllahir<<endl;
bantu=bantu->kanan;
}
}
getch();
}