SlideShare a Scribd company logo
By : Tenia Wahyuningrum, S.Kom., MT 
ST3 Telkom Purwokerto 
www.st3telkom.ac.id 
Structure and Pointer 
Pertemuan ke 3 
Algoritma dan struktur data
UDT (User Defined Type) 
Tipe Data Bentukan User 
• Bahasa pemrograman bisa memiliki tipe data: 
– Built-in : sudah tersedia oleh bahasa pemrograman 
tersebut 
• Tidak berorientasi pada persoalan yang dihadapi. 
– UDT : User Defined Type, dibuat oleh pemrogram. 
• Mendekati penyelesaian persoalan yang dihadapi 
• Contoh: record pada Pascal, struct pada C/C++, class pada 
Java 
– ADT : Abstract Data Type 
• memperluas konsep UDT dengan menambahkan 
pengkapsulan atau enkapsulasi, berisi sifat-sifat dan operasi-operasi 
yang bisa dilakukan terhadap kelas tersebut. 
• Contoh: class pada Java
Structure
Structure 
adalah kumpulan data yang saling 
berhubungan, yang disimpan 
dalam satu unit 
penyimpanan.
data pegawai 
 nama, 
 alamat , 
 gaji.
 Bila menggunakan array biasa, 
maka diperlukan tiga variable yang bebas 
satu dengan yang lain, yaitu variabel 
nama, alamat dan gaji. 
 Dengan menggunakan structure, data 
tersebut diorganisasikan dalam satu 
kesatuan 
* Dalam pascal, structure disebut record
array vs structure
Deklarasi structure 
struct data 
{ 
char name[20]; 
char address[20]; 
int salary; 
}; 
data employee1; 
//Inisialisasi variabel structure
Masukan 
int main() 
{ 
cout << "Employee's name : "; 
cin >> employee1.name; 
cout << "Employee's address : "; 
cin >> employee1.address; 
cout << "Employee's salary : "; 
cin >> employee1.salary;
Keluaran 
cout << endl << "Employee's data : "; 
cout << employee1.name << ", "; 
cout << employee1.address << ", "; 
cout << employee1.salary; 
return 0; 
}
Bagaimana jika data lebih dari 1? 
int i; 
struct{ 
char nim[5]; 
char nama[15]; 
float nilai; 
} mhs[5];
Pointer
Structure and pointer
Contoh kasus 
 Dideklarasikan array int data[5] 
 Apa yang terjadi ketika data yang akan 
diinputkan ternyata 10 buah, maka 
langkah yang dilakukan adalah harus 
mengubah programnya dan mengganti int 
data[5] menjadi int data[10].
Cara lain untuk membuat program tersebut 
adalah dengan menggunakan suatu 
variabel array yang dinamis 
dimana pemesanan tempat yang diperlukan 
untuk menyimpan data tidak dideklarasikan 
dalam program tapi dilakukan secara 
runtime (ketika program berjalan).
Pointer 
 adalah built-in type di C dan C++, 
dimana C++ mengambil konsep pointer 
dari C. 
 sebenarnya sangat terkait dengan 
"Abstract C Machine", yaitu 
model mesin abstrak dimana program C 
bekerja. 
* pointer / penunjuk
Abstract C Machine adalah mesin abstrak 
dimana mesin tersebut memiliki prosesor 
untuk menginterpretasikan stream of 
instruction, dan addressable memory
Addressable 
memory adalah 
memory yang konten-nya 
dapat diambil jika diketahui 
alamatnya.
Lebih jauh lagi, terdapat asumsi bahwa 
konten memori dapat di ambil dengan 
waktu konstan, tidak peduli 
berapa nilai alamat.
• Hal ini disebut dengan Random Access 
Memory. 
• Pointer (variabel penunjuk) juga sering di 
defenisikan sebagai suatu variabel 
yang berisi alamat 
memori dari suatu variabel lain.
Alamat ini merupakan lokasi dari obyek 
lain (biasanya variabel lain) di dalam 
memori. 
Contoh, 
jika sebuah variabel berisi alamat dari 
variabel lain, variabel pertama dikatakan 
menunjuk ke variabel kedua.
Operator 
pointer
& 
 operator menghasilkanalamatdari 
operand-nya 
 Operator & merupakan operator alamat. 
 Pada saat pendeklarasian variable, user tidak 
diharuskan menentukan lokasi 
sesungguhnya pada memory, hal ini 
akan dilakukan secara otomatis oleh kompiler dan 
operating sysem pada saat run-time.
Jika ingin mengetahui dimana suatu 
variable akan disimpan, dapat dilakukan 
dengan memberikan tanda ampersand (&) 
didepan variable , yang berarti 
"address of". Contoh : 
ted = &andy;
Penulisan tersebut berarti akan memberikan 
variable ted alamat dari variable andy. Karena 
variabel andy diberi awalan karakter 
ampersand (&), maka yang menjadi pokok disini 
adalah alamat dalam memory, bukan isi variable. 
Misalkan andy diletakkan pada alamat 1776 
kemudian dituliskan instruksi sbb : 
andy = 25; 
fred = andy; 
ted = &andy;
Structure and pointer
* 
 Menghasilkan nilai yang berbeda pada 
sebuah alamat 
 Operator * merupakan operator reference. 
 Dengan menggunakan pointer, kita dapat 
mengakses nilai yang tersimpan secara langsung 
dengan memberikan awalan operator asterisk (*) 
pada identifier pointer, yang berarti "value 
pointed by".
contoh 
 beth = *ted; 
 (dapat dikatakan:"beth sama dengan nilai 
yang ditunjuk oleh ted") beth = 25, karena 
ted dialamat 1776, dan nilai yang berada 
pada alamat 1776 adalah 25.
Structure and pointer
Pointer Bertipe Void 
• Pada C++ terdapat pointer yang dapat 
menunjuk ke tipe data apapun, pointer 
semacam ini dideklarasikan dengan tipe 
void sehingga sering dikenal dengan 
istilahVoid Pointer.
void *p; 
int a=10; 
double b=23.4; 
char c='s'; 
p=&a; //p menunjuk ke tipe data int 
cout<<"alamat (a=10) = "<<p<<endl; 
p=&b; //p menunjuk ke tipe data double 
cout<<"alamat (b=23.4) = "<<p<<endl; 
p=&c; //p menunjuk ke tipe data double 
cout<<"alamat (c='s') = "<<p<<endl;
Structure and pointer
Pointer aritmatika
int a[5]; 
int *p; 
a[0]=24; 
a[1]=32; 
a[2]=81; 
a[3]=44; 
a[4]=23; 
p=&a[0]; 
cout<<"alamat p : "<<p<<endl; 
cout<<"nilai p : "<<*p<<endl; 
p=p+3; 
cout<<"alamat p : "<<p<<endl; 
cout<<"nilai p : "<<*p<<endl;
Structure and pointer
bila menggunakan pointer dengan 
cara yang salah maka akan menyebabkan 
sistem operasi 
menjadi rusak.
Structure and pointer

More Related Content

PPTX
8. goal programming (program tujuan)
PPT
Normalisasi data
PDF
8 pengenalan input output
DOCX
Materi Basis Data - Anomali dan Normalisasi
PPTX
dasar-dasar algoritma
PDF
5. PERANCANGAN SISTEM KERJA & ERGONOMI - SAMPLING KERJA
DOC
Hambatan dalam
PDF
Perancangan dan Analisa Sistem
8. goal programming (program tujuan)
Normalisasi data
8 pengenalan input output
Materi Basis Data - Anomali dan Normalisasi
dasar-dasar algoritma
5. PERANCANGAN SISTEM KERJA & ERGONOMI - SAMPLING KERJA
Hambatan dalam
Perancangan dan Analisa Sistem

What's hot (20)

PPT
Materi Struktur Data Stack
PDF
Kamus data (data dictionary) - (Bambang Sugianto - Politeknik Sawunggalih Aji...
PPTX
Erd perpustakaan
DOC
Makalah array
PPT
7. line balancing
PDF
6 Materi Kuliah Normalisasi Tabel Database
PDF
Algoritma dan Struktur Data (Python) - Struktur I/O
PDF
2. Array of Record (Struktur Data)
PPSX
Manajemen memory (10) fix
PDF
Matematika Diskrit kombinatorial
DOCX
Normalisasi slip gaji
DOC
Sistem berkas
PPT
Materi Struktur Data Tree
PPTX
ITP UNS SEMESTER 2 Teori antrian ro
PDF
7. Queue (Struktur Data)
DOCX
Himpunan matematika diskrit
PPTX
PPTX
PPT INTERPOLASI POLINOMIAL
DOCX
Makalah Perancangan ERD & LRS Pada Sistem Pemesanan Hotel
PPTX
8 Rekursif
Materi Struktur Data Stack
Kamus data (data dictionary) - (Bambang Sugianto - Politeknik Sawunggalih Aji...
Erd perpustakaan
Makalah array
7. line balancing
6 Materi Kuliah Normalisasi Tabel Database
Algoritma dan Struktur Data (Python) - Struktur I/O
2. Array of Record (Struktur Data)
Manajemen memory (10) fix
Matematika Diskrit kombinatorial
Normalisasi slip gaji
Sistem berkas
Materi Struktur Data Tree
ITP UNS SEMESTER 2 Teori antrian ro
7. Queue (Struktur Data)
Himpunan matematika diskrit
PPT INTERPOLASI POLINOMIAL
Makalah Perancangan ERD & LRS Pada Sistem Pemesanan Hotel
8 Rekursif
Ad

Similar to Structure and pointer (20)

PPT
Pointer
PPT
PPT
Pointer
DOCX
MAKALAH DATA STRUKTURE (Diki Candra).docx
PDF
3. Pointer dan List Berkait Singly
PDF
Modul 2 strukdat
PDF
Modul 2 strukdat
PPTX
Materi Kuliah pada Minggu 2 - POINTER.pptx
PDF
MATERI POINTER TKJ K13
DOCX
MAKALAH POINTER (DIKI CANDRA) (1).docx
PDF
Pertemuan 4 Pointer Pada C++
PPTX
Algoritma&Pemrograman C++ Pertemuan 11
PPT
Materi kuliah 21 pointer part 1
PPTX
PPT-UEU-Bahasa-Pemrograman-Pertemuan-9.pptx
PPTX
7 pointer - copy
PPTX
7 pointer - copy
PDF
Pointer c++
PPTX
7 pointer
PPTX
7.pointer
PPTX
7 pointer
Pointer
Pointer
MAKALAH DATA STRUKTURE (Diki Candra).docx
3. Pointer dan List Berkait Singly
Modul 2 strukdat
Modul 2 strukdat
Materi Kuliah pada Minggu 2 - POINTER.pptx
MATERI POINTER TKJ K13
MAKALAH POINTER (DIKI CANDRA) (1).docx
Pertemuan 4 Pointer Pada C++
Algoritma&Pemrograman C++ Pertemuan 11
Materi kuliah 21 pointer part 1
PPT-UEU-Bahasa-Pemrograman-Pertemuan-9.pptx
7 pointer - copy
7 pointer - copy
Pointer c++
7 pointer
7.pointer
7 pointer
Ad

More from Tenia Wahyuningrum (20)

PPTX
Measuring User Experience
PPTX
Populasi dan sampel dalam penelitian HCI
PPTX
10th heuristic evaluation
PPTX
Good vs bad design
PPTX
Media sosial untuk pembelajaran
PPTX
4th human factors (2)
PPTX
Human factors
PPTX
Historical Context of HCI
PPTX
Trends in Human Computer Interaction
PPTX
Good data, for better life
PPTX
PPTX
Plagiarisme
PPTX
Struktur data &amp; computer trends 2015 2016
PPTX
Pengujian hipotesis
PPTX
Research method
PPTX
Basic research
PPTX
Pengenalan android
PPTX
Mobile programming pendahuluan
PPTX
Pertemuan 1
PPTX
Public speaking
Measuring User Experience
Populasi dan sampel dalam penelitian HCI
10th heuristic evaluation
Good vs bad design
Media sosial untuk pembelajaran
4th human factors (2)
Human factors
Historical Context of HCI
Trends in Human Computer Interaction
Good data, for better life
Plagiarisme
Struktur data &amp; computer trends 2015 2016
Pengujian hipotesis
Research method
Basic research
Pengenalan android
Mobile programming pendahuluan
Pertemuan 1
Public speaking

Recently uploaded (9)

PPT
pengantar-sistem-informasi manajemen.ppt
PPTX
Implementasi Microservices pada Manufaktur
PPTX
Materi_Array_Karakter_String untuk kelas XI sma.pptx
PDF
Rekomendasi Riset Lanjutan : perspektif_futurologis.pdf
DOCX
Keutuhan Aplikasi Konsep dan Praktik dalam Upaya menciptakan aplikasi Anti Vi...
PPTX
Materi asdsa asd asd sad sa dsa dsa d sa
PDF
Modul_Pemula_Merakit_Komputer untuk smppdf
PPTX
Peranan AI dalam Dunia Pendidikan dan Industri Aplikasinya
DOCX
Antivirus Versi.FULL.JALiN.KB.PRO Keutuhan Aplikasi Konsep dan Praktik dalam ...
pengantar-sistem-informasi manajemen.ppt
Implementasi Microservices pada Manufaktur
Materi_Array_Karakter_String untuk kelas XI sma.pptx
Rekomendasi Riset Lanjutan : perspektif_futurologis.pdf
Keutuhan Aplikasi Konsep dan Praktik dalam Upaya menciptakan aplikasi Anti Vi...
Materi asdsa asd asd sad sa dsa dsa d sa
Modul_Pemula_Merakit_Komputer untuk smppdf
Peranan AI dalam Dunia Pendidikan dan Industri Aplikasinya
Antivirus Versi.FULL.JALiN.KB.PRO Keutuhan Aplikasi Konsep dan Praktik dalam ...

Structure and pointer

  • 1. By : Tenia Wahyuningrum, S.Kom., MT ST3 Telkom Purwokerto www.st3telkom.ac.id Structure and Pointer Pertemuan ke 3 Algoritma dan struktur data
  • 2. UDT (User Defined Type) Tipe Data Bentukan User • Bahasa pemrograman bisa memiliki tipe data: – Built-in : sudah tersedia oleh bahasa pemrograman tersebut • Tidak berorientasi pada persoalan yang dihadapi. – UDT : User Defined Type, dibuat oleh pemrogram. • Mendekati penyelesaian persoalan yang dihadapi • Contoh: record pada Pascal, struct pada C/C++, class pada Java – ADT : Abstract Data Type • memperluas konsep UDT dengan menambahkan pengkapsulan atau enkapsulasi, berisi sifat-sifat dan operasi-operasi yang bisa dilakukan terhadap kelas tersebut. • Contoh: class pada Java
  • 4. Structure adalah kumpulan data yang saling berhubungan, yang disimpan dalam satu unit penyimpanan.
  • 5. data pegawai  nama,  alamat ,  gaji.
  • 6.  Bila menggunakan array biasa, maka diperlukan tiga variable yang bebas satu dengan yang lain, yaitu variabel nama, alamat dan gaji.  Dengan menggunakan structure, data tersebut diorganisasikan dalam satu kesatuan * Dalam pascal, structure disebut record
  • 8. Deklarasi structure struct data { char name[20]; char address[20]; int salary; }; data employee1; //Inisialisasi variabel structure
  • 9. Masukan int main() { cout << "Employee's name : "; cin >> employee1.name; cout << "Employee's address : "; cin >> employee1.address; cout << "Employee's salary : "; cin >> employee1.salary;
  • 10. Keluaran cout << endl << "Employee's data : "; cout << employee1.name << ", "; cout << employee1.address << ", "; cout << employee1.salary; return 0; }
  • 11. Bagaimana jika data lebih dari 1? int i; struct{ char nim[5]; char nama[15]; float nilai; } mhs[5];
  • 14. Contoh kasus  Dideklarasikan array int data[5]  Apa yang terjadi ketika data yang akan diinputkan ternyata 10 buah, maka langkah yang dilakukan adalah harus mengubah programnya dan mengganti int data[5] menjadi int data[10].
  • 15. Cara lain untuk membuat program tersebut adalah dengan menggunakan suatu variabel array yang dinamis dimana pemesanan tempat yang diperlukan untuk menyimpan data tidak dideklarasikan dalam program tapi dilakukan secara runtime (ketika program berjalan).
  • 16. Pointer  adalah built-in type di C dan C++, dimana C++ mengambil konsep pointer dari C.  sebenarnya sangat terkait dengan "Abstract C Machine", yaitu model mesin abstrak dimana program C bekerja. * pointer / penunjuk
  • 17. Abstract C Machine adalah mesin abstrak dimana mesin tersebut memiliki prosesor untuk menginterpretasikan stream of instruction, dan addressable memory
  • 18. Addressable memory adalah memory yang konten-nya dapat diambil jika diketahui alamatnya.
  • 19. Lebih jauh lagi, terdapat asumsi bahwa konten memori dapat di ambil dengan waktu konstan, tidak peduli berapa nilai alamat.
  • 20. • Hal ini disebut dengan Random Access Memory. • Pointer (variabel penunjuk) juga sering di defenisikan sebagai suatu variabel yang berisi alamat memori dari suatu variabel lain.
  • 21. Alamat ini merupakan lokasi dari obyek lain (biasanya variabel lain) di dalam memori. Contoh, jika sebuah variabel berisi alamat dari variabel lain, variabel pertama dikatakan menunjuk ke variabel kedua.
  • 23. &  operator menghasilkanalamatdari operand-nya  Operator & merupakan operator alamat.  Pada saat pendeklarasian variable, user tidak diharuskan menentukan lokasi sesungguhnya pada memory, hal ini akan dilakukan secara otomatis oleh kompiler dan operating sysem pada saat run-time.
  • 24. Jika ingin mengetahui dimana suatu variable akan disimpan, dapat dilakukan dengan memberikan tanda ampersand (&) didepan variable , yang berarti "address of". Contoh : ted = &andy;
  • 25. Penulisan tersebut berarti akan memberikan variable ted alamat dari variable andy. Karena variabel andy diberi awalan karakter ampersand (&), maka yang menjadi pokok disini adalah alamat dalam memory, bukan isi variable. Misalkan andy diletakkan pada alamat 1776 kemudian dituliskan instruksi sbb : andy = 25; fred = andy; ted = &andy;
  • 27. *  Menghasilkan nilai yang berbeda pada sebuah alamat  Operator * merupakan operator reference.  Dengan menggunakan pointer, kita dapat mengakses nilai yang tersimpan secara langsung dengan memberikan awalan operator asterisk (*) pada identifier pointer, yang berarti "value pointed by".
  • 28. contoh  beth = *ted;  (dapat dikatakan:"beth sama dengan nilai yang ditunjuk oleh ted") beth = 25, karena ted dialamat 1776, dan nilai yang berada pada alamat 1776 adalah 25.
  • 30. Pointer Bertipe Void • Pada C++ terdapat pointer yang dapat menunjuk ke tipe data apapun, pointer semacam ini dideklarasikan dengan tipe void sehingga sering dikenal dengan istilahVoid Pointer.
  • 31. void *p; int a=10; double b=23.4; char c='s'; p=&a; //p menunjuk ke tipe data int cout<<"alamat (a=10) = "<<p<<endl; p=&b; //p menunjuk ke tipe data double cout<<"alamat (b=23.4) = "<<p<<endl; p=&c; //p menunjuk ke tipe data double cout<<"alamat (c='s') = "<<p<<endl;
  • 34. int a[5]; int *p; a[0]=24; a[1]=32; a[2]=81; a[3]=44; a[4]=23; p=&a[0]; cout<<"alamat p : "<<p<<endl; cout<<"nilai p : "<<*p<<endl; p=p+3; cout<<"alamat p : "<<p<<endl; cout<<"nilai p : "<<*p<<endl;
  • 36. bila menggunakan pointer dengan cara yang salah maka akan menyebabkan sistem operasi menjadi rusak.