STRUKTUR DATA
Disusun Oleh :
Nama : Syahren Maulana Siddik
NIM : 181011400979
Kelas : 04TPLP009 V.219
TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS PAMULANG
Jl. Surya Kencana No. 1 Pamulang Telp. (021) 7412566, Fax. (021)
7412566
KATA PENGANTAR
Dengan mengucapkan puji syukur Alhamdulillah kepada Allah SWT, yang telah
melimpahkan segala rahmat dan hidayah-Nya, sehingga kami dapat mengerjakan
makalahElektronikaDasar ini dengan baik dan lancar. Kami berharap makalah ini dapat
memberikan motivasi kepada para mahasiswa-mahasiswi untuk lebih giat mempelajarinya.
Kami juga meminta maaf yang sebesar-besarnya apabila ada kekurangan, kesalahan bahkan
kata-kata yang tidak berkenan di hati dan disisi lain kami sangat mengharapkan ada masukan
baik kritik maupun saran dari saudara. Sehingga penyusun dapat memperbaiki apa yang jadi
kekurangan kami karena tidak ada manusia yang sempurna kecuali Allah SWT. Akhir kata
kami mengharapkan makalah ini banyak manfaatnya bagi saya sendiri khususnya maupun
semua pihak pada umumnya.
DAFTAR ISI
KATA PENGANTAR.................................................................................................................................2
DAFTAR ISI.............................................................................................................................................3
BAB I PENDAHULUAN...........................................................................................................................4
Teori..................................................................................................................................................4
Pertemuan I Tipe Data...................................................................................................................4
Pertemuan II Aritmatika Tipe Data................................................................................................5
Pertemuan III Array.......................................................................................................................5
Pertemuan IV Array Pointer...........................................................................................................6
Pertemuan V Struct.......................................................................................................................6
Pertemuan VI Stack.......................................................................................................................9
Pertemuan VII Double Stack........................................................................................................10
Source Kode.....................................................................................................................................11
Petemuan I Tipe data...................................................................................................................11
Pertemuan II Aritmatika Tipe Data..............................................................................................15
Pertemuan III Array.....................................................................................................................16
Pertemuan IV Array Pointer.........................................................................................................18
Pertemuan V Struct.....................................................................................................................20
Pertemuan VI Stack.....................................................................................................................21
Pertemuan VII Double Stack........................................................................................................23
KESIMPULAN.......................................................................................................................................27
SARAN..................................................................................................................................................27
Daftar Pustaka.....................................................................................................................................28
BAB I
PENDAHULUAN
Teori
Pertemuan I Tipe Data
Tipe data adalah himpunan nilai yang dapat dimiliki oleh sebuah data. Tipe data
menentukan apakah sebuah nilai dapat dimiliki sebuah data atau tidak, serta operasi apa yang
dapat dilakukan pada data tersebut. Contoh tipe data dalam dunia nyata adalah bilangan bulat.
Dalam beberapa literatur, array sering disebut (diterjemahkan) sebagai larik. Array
adalah kumpulan dari nilai-nilai data bertipe sama dalam urutan tertentu yang menggunakan
sebuah nama yang sama. Nilai-nilai data di suatu array disebut dengan elemen-elemen array.
Letak urutan dari elemen-elemen array ditunjukkan oleh suatu subscript atau indeks.
Array bisa berupa array berdimensi satu, dua, tiga atau lebih. Array berdimensi satu
(one-dimensional array) mewakili bentuk suatu vektor. Array berdimensi dua
(twodimensional array) mewakili bentuk dari suatu matriks atau table. Array berdimensi tiga
(three-dimensional array) mewakili bentuk suatu ruang.
Pertemuan IV Array Pointer
Hubungan antara pointer dan array sangatlah erat. Perhatikan contoh berikut :
Pertemuan V Struct
Struct atau record adalah kumpulan data yang memiliki tipe data yang berbeda. Secara
pendeklarasian, struct sangat berbeda dengan array yang hanya memiliki satu buah tipe data
untuk setiap kumpulannya. Struct digunakan apabila data yang ingin dikelompokkan
memiliki tipe data yang berbeda. Pendeklarasian struct sebagai berikut:
1 stuct data_mahasiswa
2 {
3
4 long int nim;
5 char nama[100];
6 char fakultas[100];
};
7
8 data_mahasiswa mahasiswa1, mahasiswa2;
9
Deklarasi di atas merupakan suatu tipe data yang bernama data_mahasiswa di mana setiap
data yang akan dideklarasikan menggunakan tipe data data_mahasiswa akan mempunyai field
nim, nama, dan fakultas. Untuk dapat menggunakan tipe data tersebut sebuah variabel harus
dideklarasikan menggunakan nama struct nya. Bentuk umum pendeklarasian variabel struct
nya adalah sebagai berikut:
1 struct data_mahasiswa mahasiswa1, mahasiswa2;
Deklarasi dua variabel di atas ada dua variabel bernama Mahasiswa1 dan Mahasiswa2 setiap
variabel tersebut mempunyai field sesuai dengan data_mahasiswa.
Selain dekalrasi variabel ada hal yang harus diperhatikan yaitu cara untuk mengisi dan
memanggil nilai yang ada di dalam sebuah struct, yaitu sebagai berikut:
1 //Untuk mengisi nilai struct
2 cin>>mahasiswa1.nim;
3
4 //Untuk memanggil nilai struct
cout<<mahasiswa1.nim<<endl;
5
Untuk lebih jelasnya, berikut source coding struct C++
1 #include <iostream>
2 #include <stdio.h>
3 #include <stdlib.h>
4 #include <conio.h>
5
using namespace std;
6
7 //Deklarasi struct
8 struct data_mahasiswa
9 {
10 long int nim;
char nama[100];
11 char fakultas[100];
12 };
13
14 //Deklarasi variabel struct
15 data_mahasiswa mahasiswa1, mahasiswa2;
16
17 int main()
{
18 //Input struct data mahasiswa
19 cout<<" Data Mahasiswa Pertama\n";
20 cout<<"-----------------------\n";
21 cout<<" NIM : "; cin>>mahasiswa1.nim;
22 cout<<" Nama : "; fflush(stdin); gets(mahasiswa1.nama);
cout<<" Fakultas : "; fflush(stdin); gets(mahasiswa1.fakultas);
23 cout<<"\n\n";
24 cout<<" Data Mahasiswa Kedua\n";
25 cout<<"-----------------------\n";
26 cout<<" NIM : "; cin>>mahasiswa2.nim;
cout<<" Nama : "; fflush(stdin); gets(mahasiswa2.nama);
27 cout<<" Fakultas : "; fflush(stdin); gets(mahasiswa2.fakultas);
28 cout<<"\n\n";
29
30 //Output struct data mahasiswa
31 cout<<" Data Mahasiswa Pertama\n";
32 cout<<"-----------------------\n";
cout<<" NIM : "<<mahasiswa1.nim<<endl;
33 cout<<" Nama : "<<mahasiswa1.nama<<endl;
34 cout<<" Fakultas : "<<mahasiswa1.fakultas<<endl;
35 cout<<"\n\n";
36 cout<<" Data Mahasiswa Kedua\n";
cout<<"----------------------\n";
37
cout<<" NIM : "<<mahasiswa2.nim<<endl;
38 cout<<" Nama : "<<mahasiswa2.nama<<endl;
39 cout<<" Fakultas : "<<mahasiswa2.fakultas<<endl;
40 cout<<"\n\n";
41 getch();
}
Pertemuan VI Stack
Stack merupakan suatu tumpukan dari benda dengan konsep utamanya adalah LIFO (Last In
Fist Out). Benda yang masuk terakhir dalam stack akan menjadi benda pertama yang di
keluarkan dari stack. Ilustrasinya bisa di liat di bawah :
Pada gambar diatas, jika kita ingin mengambil sesuatu dari tumpukan maka kita harus
mengambilnya dari tumpukan yang paling atas dahulu. Misalkan jika kita mengambil yang A
terlebih dahulu maka yang B akan jatuh. Dalam program c++ ada 2 cara penerapan prinsip
stack ini yakni dengan array dan linked list . operasi-operasi dalam stack :
1. Push : untuk menambahkan item pada tumpukan paling atas
2. Pop : untuk mengambil item paling atas
3. Clear : untuk mengosongkan stack
4. IsEmpty : fungsi yang digunakan untuk mengecek apakah stack sudah kosong
5. IsFull : fungsi yang digunakan untuk mengecek apakah stack sudah penuh
Pertemuan VII Double Stack
Double stack sering juga disebut stack ganda. Prinsip dari double stack adalah LIFO (Last In First
Out) baik untuk stack1 dan stack2. Dalam double stack terjadi beberapa proses diantaranya :
AWAL (Inisialisasi)
int main()
{
int angka;
bool hasil;
cout << "Masukan angka = "; cin >> angka;
hasil = angka > 15;
cout << hasil;
}
Char
#include <iostream>
using namespace std;
int main(){
char nilai;
Double
#include <iostream>
using namespace std;
int main() {
double jari, hasil ;
const double p = 3.1428;
return 0;
}
Float
#include <iostream>
using namespace std;
int main() {
float jari, hasil ;
const float p = 3.14;
cout << "Menghitung Keliling Lingkaran" << endl << endl;
cout << "Masukan jumlah jari-jari : "; cin >> jari;
hasil = (jari * p) * 2;
cout << "Keliling dari lingkaran adalah : " << hasil;
return 0;
}
Int
#include <iostream>
using namespace std;
int main() {
int x, y, z;
cout << "Program Menampilkan Bilangan Perkalian"<<endl<<endl;
cout << "Masukkan Angka Pertama : "; cin >> x;
cout << "Masukkan Angka Kedua : "; cin >> y;
z = x * y;
cout << "Hasil dari " << x << " x " << y << " = ";
cout << z << endl;
return 0;
}
Short
#include <iostream>
using namespace std;
int main() {
short int x, y, z;
z = x + y;
cout << "Hasil dari " << x << " + " << y << " = ";
cout << z << endl;
return 0;
}
String
#include <iostream>
using namespace std;
int main() {
string nim;
return 0;
}
Pertemuan II Aritmatika Tipe Data
#include<iostream>
using namespace std;
int main() {
int a, b, c, d, e;
cout<<"A = 11 + 6"<<endl;
cout<<"B = 13 - 40"<<endl;
cout<<"C = 50 * 2"<<endl;
cout<<"D = 110 / 2"<<endl;
cout<<"E = 610 % 20"<<endl;
cout<<endl;
cout<<"Hasil dari A = "<<a<<endl;
cout<<"Hasil dari B = "<<b<<endl;
cout<<"Hasil dari C = "<<c<<endl;
cout<<"Hasil dari D = "<<d<<endl;
cout<<"Hasil dari E = "<<e<<endl;
return 0;
}
Pertemuan III Array
#include<iostream>
using namespace std;
main()
{
cout<<"Syahren Maulana SIddik - 181011400979 - 04TPLP009 \n"<<endl;
cout<<"Program Sederhana Pengolahan Ujian Mahasiswa"<<endl;
cout<<"-------------------------------------------\n"<<endl;
//Mendeklarasikan array
int data[2][2];
//Mendeklarasikan pointer
int *p;
case 1:
{
int nilai;
cout<<"Masukkan nilai :";
cin>>nilai;
if(nilai>=80&nilai <=100)
cout<<"Grade = A"<<endl;
else
if(nilai >=71&nilai <=81)
cout<<"Grade = B"<<endl;
else
if(nilai >=61&nilai <=71)
cout<<"Grade = C"<<endl;
else
if(nilai >=51&nilai <=61)
cout<<"Grade = D"<<endl;
else
if(nilai <51)
cout<<"Grade = E"<<endl;
else
cout<<"Tampilkan Grade : ";
break;
}default:
cout<<endl;
cout<<" Kode Tidak Terdaftar";
} cout<<"\n\n Kembali ke menu pilihan [Y], Exit [N] : ";
cin>>kembali;
}while(kembali=='N',kembali=='Y');
}
Pertemuan IV Array Pointer
#include<iostream>
using namespace std;
int main()
{
// PENGGUNAAN ARRAY
// sebagai contoh saja, bobot nilai tugas 30%, nilai uts 35%, dan nilai uas 35%
nilaitugas = tugas*30/100;
nilaiuts = uts*35/100;
nilaiuas = uas*35/100;
nilaiakhir = nilaitugas+nilaiuts+nilaiuas;
if(nilaiakhir>=80)
{
grade = 'A';
}
else if (nilaiakhir>=70)
{
grade = 'B';
}
else if (nilaiakhir>=60)
{
grade = 'C';
}
else if (nilaiakhir>=50)
{
grade = 'D';
}
else
{
grade = 'E';
}
// PENGGUNAAN POINTER
char *pointer;
pointer = &grade;
cout<<endl<<endl;
cout<<"------------------ Hasil Nilai Akhir Siswa --------------------"<<endl<<endl;
cout<<"Siswa yang bernama "<<nama<<" dengan nilai persentasi yang dihasilkan : "<<endl;
cout<<"Nilai Tugas * 30% = "<<nilaitugas<<endl;
cout<<"Nilai UTS * 35% = "<<nilaiuts<<endl;
cout<<"Nilai UAS * 35% = "<<nilaiuas<<endl;
cout<<endl;
cout<<"Jadi, siswa yang bernama "<<nama<<" memperoleh nilai akhir sebesar
"<<nilaiakhir<<endl<<endl;
cout<<"Grade nilai yang didapat adalah "<<grade<<endl;
cout<<endl<<endl;
}
Pertemuan V Struct
#include <iostream>
#include <string>
using namespace std;
struct mahasiswa{
string nama;
string jurusan;
float ipk;
};
int main(){
mahasiswa mhs;
cout<<"DATA MAHASISWA"<<endl;
cout<<"--------------------"<<endl;
cout<<"Nama : "<<mhs.nama<<endl;
cout<<"Jurusan : "<<mhs.jurusan<<endl;
cout<<"IPK : "<<mhs.ipk<<endl;
return 0;
}
Pertemuan VI Stack
#include <iostream>
#define MAX 10
cout<<"\n======================================================"<<end
l;
helpI=&S[-1];
}
//tambahan
void tampilMenu(){
cout<<"PROGRAM MEMASUKAN NILAI ABSENSI MAHASISWA"<<endl;
cout<<"========================================================"<<en
dl;
cout<<"========================================================"<<en
dl;
cout<<"1. isi nilai dari kiri"<<endl;
cout<<"2. isi nilai dari kanan"<<endl;
cout<<"3. isi kedua stack"<<endl;
cout<<"4. pop stack 1"<<endl;
cout<<"5. pop stack 2"<<endl;
cout<<"6. pop kedua stack"<<endl;
cout<<"========================================================="<<e
ndl;
cout<<"pilihan anda : ";cin>>pil;
int main(){
cout<<"Syahren Maulana Siddik"<<endl;
cout<<"181011400979"<<endl;
cout<<"04TPLP009"<<endl;
awal();
do{
tampilMenu();
cout<<endl;
switch(pil){
case 1: if(BisaDiisi(1)){
cout<<"masukkan bilangan = ";
cin>>X;
push1(X);
}
else{
cout<<"maaf tidak ada tempat untuk push";
}break;
case 2: if(BisaDiisi(1)){
cout<<"masukkan bilangan = ";
cin>>Y;
push2(Y);
}
else{
cout<<"maaf tidak ada tempat untuk push";
}break;
case 3: if(BisaDiisi(2)){
cout<<"masukkan bilangan 1= ";
cin>>X;
push1(X);
cout<<"masukkan bilangan 2= ";
cin>>Y;
push2(Y);
}
else{
cout<<"maaf ruang tidak cukup";
}break;
case 4: if(BisaDiambil1()){
pop1();
cout<<"data yang diambil = "<<X<<endl;
}
else{
cout<<"maaf stack 1 tidak ada isinya"<<endl;
}break;
case 5: if(BisaDiambil2()){
pop2();
cout<<"angka yang diambil = "<<Y<<endl;
}
else{
cout<<"maaf stack 2 tidak ada isinya"<<endl;
}break;
case 6: if(BisaDiambil1()&&BisaDiambil2()){
pop1();
pop2();
cout<<"isi yang baru di pop = "<<X<<" dan "<<Y<<endl;
}
else{
cout<<"maaf salah satu atau kedua stack tidak ada isinya"<<endl;
}break;
}
tampil();
cout<<"\nenter untuk mengulang dan esc untuk keluar !";
do{
mov[0]=getch();
if(mov[0]==27)
exit(0);
}while(mov[0]!=13);
}while(mov[0]==13);
getch();
}
KESIMPULAN
Struktur data adalah cara penyimpanan, penyusunan dan pengaturan data di dalam media
penyimpanan komputer sehingga data tersebut dapat digunakan secara efisien.2.
Apabila kita membuat program dengan data yang sudah kita ketahui batasnya, makakita bisa
menggunakan array (tipe data statis), namun apabila data kita belum kitaketahui batasnya,
kita bisa menggunakan pointer (tipe data dinamis).5.
Untuk sekumpulan data dengan tipe data yang berlainan, namun merupakan satu-kesatuan,
kita dapat menggunakan struktur untuk merepresentasikannya.
SARAN
Perdalam ilmu computer kalian, karena jaman sekarang sudah canggih. Segala sesuatunya
sudah menggukan computer atau elektronik. Jadi jangan malas untuk belajar , terutama
tentang computer.
Daftar Pustaka
http://mieke.lecturer.pens.ac.id/bhs-c/prakt-c/p9-array.pdf
https://www.levatra.com/2017/02/pengertian-tipe-data-variabel-dan-operator-
pemrograman.html
https://www.academia.edu/9923054/Dasar_teori_tipe_data_dan_ekspresi
https://haganesite.wordpress.com/2016/07/30/pointer-dan-array/
http://jagocoding.com/tutorial/666/Struct_Pada_Pemrograman_C
https://kuliahanku.wordpress.com/2014/09/23/single-stack-dan-double-stack/
https://mdteckno.blogspot.com/2015/06/definisistack-stack-merupakan-suatu.html