SlideShare a Scribd company logo
STRUKTUR DATA (1) Oleh   Antonius Rachmat C, S.Kom
PENGANTAR Bagaimana cara mengatasi masalah implementasi program dengan komputer? Pemahaman masalah secara menyeluruh dan persiapan data Keputusan operasi-operasi yang dilakukan terhadap data Penyimpanan data-data pada memori sehingga tersimpan dan terstruktur secara logis, operasinya efisien Pengambilan keputusan terhadap bahasa pemrograman mana yang paling cocok untuk jenis data yang ada
Perbedaan Tipe Data, Obyek Data & Struktur Data  (1) Tipe data adalah jenis data yang mampu ditangani oleh suatu bahasa pemrograman pada komputer. Tiap-tiap bahasa pemrograman memiliki tipe data yang memungkinkan:  Deklarasi terhadap variabel tipe data tersebut Menyediakan kumpulan operasi yang mungkin terhadap variabel bertipe data tersebut Jenis obyek data yang mungkin Contoh tipe data di C? Java? Pascal? .NET?
Perbedaan Tipe Data, Obyek Data & Struktur Data  (2) Obyek Data adalah kumpulan elemen yang mungkin untuk suatu tipe data tertentu.  Mis: integer mengacu pada obyek data -32768 s/d 32767, byte 0 s/d 255, string adalah kumpulan karakter maks 255 huruf Struktur Data adalah cara penyimpanan dan pengorganisasian data-data pada memori komputer maupun file secara efektif sehingga dapat digunakan secara efisien, termasuk operasi-operasi di dalamnya.
Aktivitas Struktur Data Di dalam struktur data kita berhubungan dengan 2 aktivitas: Mendeskripsikan kumpulan obyek data yang sah sesuai dengan tipe data yang ada Menunjukkan mekanisme kerja operasi-operasinya Contoh: integer (-32768 s/d 32767) dan jenis operasi yang diperbolehkan adalah +, -, *, /, mod, ceil, floor, <, >, != dsb. Struktur data = obyek data  + [operasi manipulasi data]
Hubungan SD dan Algoritma Dengan pemilihan struktur data yang baik, maka problem yang kompleks dapat diselesaikan sehingga algoritma dapat digunakan secara efisien, operasi-operasi penting dapat dieksekusi dengan sumber daya yang lebih kecil, memori lebih kecil, dan waktu eksekusi yang lebih cepat. Tidak semua struktur data baik dan sesuai.  Contoh untuk problem data bank: pengupdate-an harus cepat, sedangkan penambahan/penghapusan data boleh lebih lambat.
Ciri Algoritma Ciri algoritma yang baik menurut Donald E.Knuth: Input: ada minimal 0 input atau lebih Ouput: ada minimal 1 output atau lebih Definite: ada kejelasan apa yang dilakukan Efective: langkah yang dikerjakan harus efektif Terminate: langkah harus dapat berhenti (stop) secara jelas
ADT (Abstract Data Type) atau Tipe Data Bentukan   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, 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
ADT (2) Bahasa C memiliki tipe data numerik dan karakter (seperti int, float, char dan lain-lain).  Disamping itu juga memiliki tipe data enumerasi dan structure.  Bagaimana jika kita ingin membuat tipe data baru? Untuk pembuatan tipe data baru digunakan keyword  typedef Bentuk umum: typedef <tipe_data_lama> <ama_tipe_data_baru>
Program Contoh: #include <stdio.h> #include <conio.h> typedef int angka; typedef float pecahan; typedef char huruf; void main(){ clrscr(); angka umur; pecahan pecah; huruf h; huruf nama[10]; printf(&quot;masukkan umur anda : &quot;);scanf(&quot;%d&quot;,&umur); printf(&quot;Umur anda adalah %d&quot;,umur); printf(&quot;\nmasukkan bilangan pecahan : &quot;);scanf(&quot;%f&quot;,&pecah); printf(&quot;Bilangan pecahan %f&quot;,pecah); printf(&quot;\nmasukkan huruf : &quot;);h=getche(); printf(&quot;\nHuruf anda %c&quot;,h); printf(&quot;\nmasukkan nama : &quot;);scanf(&quot;%s&quot;,nama); printf(&quot;Nama anda %s&quot;,nama); getch(); }
Hasil Program
Stuct Struct adalah tipe data bentukan yang berisi kumpulan variabel-variabel yang bernaung dalam satu nama yang sama dan memiliki kaitan satu sama lain. Berbeda dengan array hanya berupa kumpulan variabel yang bertipe data sama, struct bisa memiliki variabel-variabel yang bertipe data sama atau berbeda, bahkan bisa menyimpan variabel yang bertipe data array atau struct itu sendiri. Variabel-variabel yang menjadi anggota struct disebut dengan elemen struct.
Bentuk Umum Bentuk umum: typedef struct <nama_struct> { tipe_data <nama_var>; tipe_data <nama_var>; .... }
Pendeklarasian dan penggunaan Struct (1) (menggunakan  typedef ) typedef struct Mahasiswa { char NIM[8]; char nama[50]; float ipk; }; untuk menggunakan struct Mahasiswa dengan membuat variabel mhs dan mhs2 Mahasiswa mhs,mhs2; untuk menggunakan struct Mahasiswa dengan membuat variabel array m; Mahasiswa m[100];
Pendeklarasian dan penggunaan Struct (2) (tanpa menggunakan  typedef ) struct { char NIM[8]; char nama[50]; float ipk; } mhs; Berarti kita sudah mempunyai  variabel  mhs yang bertipe data struct seperti diatas.
Cara penggunaan struct dan pengaksesan elemen-elemennya Penggunaan/pemakaian tipe data struct dilakukan dengan membuat suatu variabel yang bertipe data struct tersebut Pengaksesan elemen struct dilakukan secara individual dengan menyebutkan nama variabel struct diikuti dengan operator titik (.) Misalnya dengan struct mahasiswa seperti contoh di atas, kita akan akses elemen-elemennya seperti contoh berikut:
Program Contoh 1 #include <stdio.h> #include <conio.h> //Pendeklarasian tipe data baru struct Mahasiswa typedef struct Mahasiswa{ char NIM[9]; char nama[30]; float ipk; }; void main(){ //Buat variabel mhs bertipe data Mahasiswa Mahasiswa mhs; clrscr(); printf(&quot;NIM = &quot;);scanf(&quot;%s&quot;,mhs.NIM); printf(&quot;Nama = &quot;);scanf(&quot;%s&quot;,mhs.nama); printf(&quot;IPK = &quot;);scanf(&quot;%f&quot;,&mhs.ipk); printf(&quot;Data Anda : \n&quot;); printf(&quot;NIM : %s\n&quot;,mhs.NIM);  printf(&quot;Nama : %s\n&quot;,mhs.nama); printf(&quot;IPK : %f\n&quot;,mhs.ipk); getch(); }
Hasil
Program #include <stdio.h> #include <conio.h> #define phi 3.14 //langsung dianggap variabel 'lingkaran' struct { float jari2; float keliling; float luas; } lingkaran; //fungsi void untuk menghitung luas ingkaran void luasLingkaran(){ //langsung menggunakan luas lingkaran asli lingkaran.luas = lingkaran.jari2 * lingkaran.jari2 * phi; printf(&quot;\nLuas lingkaran = %f&quot;,lingkaran.luas); } //fungsi yang mengembalikan nilai float untuk menghitung keliling lingkaran float kelLingkaran(float j){ return 2*phi*lingkaran.jari2; } int main(){ clrscr(); printf(&quot;Jari-jari = &quot;);scanf(&quot;%f&quot;,&lingkaran.jari2); //panggil fungsi luasLingkaran luasLingkaran(); //panggil fungsi keliling, nilai kembaliannya dikirim ke keliling lingkaran asli lingkaran.keliling = kelLingkaran(lingkaran.jari2); //tampilkan keliling lingkaran asli printf(&quot;\nKeliling lingkaran = %f&quot;,lingkaran.keliling); getch(); }
Hasil
Struct yang berisi struct lain   #include <stdio.h> #include <conio.h> typedef struct Date{ int dd; int mm; int yyyy; }; typedef struct Time{ int h; int m; int s; }; typedef struct Login{ int ID; Date tglLogin; Time waktuLogin; }; int main(){ Login user1; printf(&quot;USER 1\n&quot;); printf(&quot;ID : &quot;);scanf(&quot;%d&quot;,&user1.ID); printf(&quot;Tanggal Login\n&quot;); printf(&quot;Hari : &quot;);scanf(&quot;%d&quot;,&user1.tglLogin.dd); printf(&quot;Bulan : &quot;);scanf(&quot;%d&quot;,&user1.tglLogin.mm); printf(&quot;Tahun : &quot;);scanf(&quot;%d&quot;,&user1.tglLogin.yyyy);  printf(&quot;Waktu Login\n&quot;); printf(&quot;Jam : &quot;);scanf(&quot;%d&quot;,&user1.waktuLogin.h); printf(&quot;Menit : &quot;);scanf(&quot;%d&quot;,&user1.waktuLogin.m); printf(&quot;Detik : &quot;);scanf(&quot;%d&quot;,&user1.waktuLogin.s);  printf(&quot;Terimakasih\n&quot;); printf(&quot;Data Anda :\n&quot;); printf(&quot;ID : %d\n&quot;,user1.ID); printf(&quot;Date : %d - %d - %d\n&quot;,user1.tglLogin.dd,user1.tglLogin.mm,user1.tglLogin.yyyy); printf(&quot;ID : %d:%d:%d\n&quot;,user1.waktuLogin.h,user1.waktuLogin.m,user1.waktuLogin.s); getch(); }
Hasil
Array of Struct #include <stdio.h> #include <conio.h> typedef struct Date{ int dd; int mm; int yyyy; }; typedef struct Time{ int h; int m; int s; }; typedef struct Login{ int ID; Date tglLogin; Time waktuLogin; }; int main(){ Login user[3]; //3 user for(int i=0;i<3;i++){ printf(&quot;\nUSER ke-%d\n&quot;,i+1); printf(&quot;ID : &quot;);scanf(&quot;%d&quot;,&user[i].ID); printf(&quot;Tanggal Login\n&quot;); printf(&quot;Hari : &quot;);scanf(&quot;%d&quot;,&user[i].tglLogin.dd); printf(&quot;Bulan : &quot;);scanf(&quot;%d&quot;,&user[i].tglLogin.mm); printf(&quot;Tahun : &quot;);scanf(&quot;%d&quot;,&user[i].tglLogin.yyyy);  printf(&quot;Waktu Login\n&quot;); printf(&quot;Jam : &quot;);scanf(&quot;%d&quot;,&user[i].waktuLogin.h); printf(&quot;Menit : &quot;);scanf(&quot;%d&quot;,&user[i].waktuLogin.m); printf(&quot;Detik : &quot;);scanf(&quot;%d&quot;,&user[i].waktuLogin.s);  printf(&quot;Terimakasih Atas Pengisiannya\n&quot;); printf(&quot;\nData User ke-%d:\n&quot;,i+1); printf(&quot;Login ID : %d\n&quot;,user[i].ID); printf(&quot;Login Date : %d - %d - %d\n&quot;,user[i].tglLogin.dd,user[i].tglLogin.mm,user[i].tglLogin.yyyy); printf(&quot;Login Time : %d:%d:%d\n&quot;,user[i].waktuLogin.h,user[i].waktuLogin.m,user[i].waktuLogin.s); } getch(); }
Hasil
LATIHAN Buatlah program menu yang berisi data-data KTP penduduk yang disimpan dalam array struct 1 dimensi dan dapat dilakukan penambahan data, pencarian data, penampilan data dan penghapusan data.   NEXT :  SEARCHING ARRAY
Ad

Recommended

Laporan tugas struktur data
Laporan tugas struktur data
Bina Sarana Informatika
 
Tipe data pada java
Tipe data pada java
rahmat s
 
struktur data
struktur data
Ayu_lestari
 
Laporan praktikum Algoritma dan Pemrograman pertemuan 10
Laporan praktikum Algoritma dan Pemrograman pertemuan 10
Ekha Cahya Nugraha
 
Laporan praktikum Algoritma dan Pemrograman pertemuan 11
Laporan praktikum Algoritma dan Pemrograman pertemuan 11
Ekha Cahya Nugraha
 
Laporan praktikum Algoritma dan Pemrograman pertemuan 9&10
Laporan praktikum Algoritma dan Pemrograman pertemuan 9&10
Ekha Cahya Nugraha
 
Pointer
Pointer
dodie_hermawan_p
 
Laporan 1 penngantar program r
Laporan 1 penngantar program r
Khair Norrasid
 
Laporan praktikum Algoritma dan Pemrograman pertemuan 13
Laporan praktikum Algoritma dan Pemrograman pertemuan 13
Ekha Cahya Nugraha
 
Laporan praktikum Algoritma dan Pemrograman pertemuan 15
Laporan praktikum Algoritma dan Pemrograman pertemuan 15
Ekha Cahya Nugraha
 
Pelatihan Bahasa R
Pelatihan Bahasa R
anom0164
 
C programming language notes (9)
C programming language notes (9)
nakomuri
 
Laporan praktikum Algoritma dan Pemrograman pertemuan 12
Laporan praktikum Algoritma dan Pemrograman pertemuan 12
Ekha Cahya Nugraha
 
Tipe Data pada Bahasa Java
Tipe Data pada Bahasa Java
As Faizin
 
Pengantar R3
Pengantar R3
Raden Maulana
 
Tugas mandiri struktur data
Tugas mandiri struktur data
Asep Jaenudin
 
Structure and pointer
Structure and pointer
Tenia Wahyuningrum
 
BAB 1 PBO C++ Struktur
BAB 1 PBO C++ Struktur
Ricko SkyWriter
 
Bab 2 Dasar Teori perancangan sistem informasi pendaftaran online be smart i...
Bab 2 Dasar Teori perancangan sistem informasi pendaftaran online be smart i...
Ricko SkyWriter
 
Sorting insert binary
Sorting insert binary
Materi Kuliah Online
 
Kontrak Perkuliahan
Kontrak Perkuliahan
formatik
 
Pert.5 linked list
Pert.5 linked list
Ical Militanmannojack
 
4. pemrograman fungsi
4. pemrograman fungsi
Roziq Bahtiar
 
Makalah pencarian dan pengurutan data
Makalah pencarian dan pengurutan data
Ali Must Can
 
Pengantar R
Pengantar R
Raden Maulana
 
Modul PBO Bab-04 - Hubungan antar Kelas
Modul PBO Bab-04 - Hubungan antar Kelas
Rakhmat Dedi Gunawan
 
Jeni Intro2 Bab03 Teknik Pemrograman Lanjut
Jeni Intro2 Bab03 Teknik Pemrograman Lanjut
Individual Consultants
 
Romi oop-02-javafundamentals-29agustus2010
Romi oop-02-javafundamentals-29agustus2010
SabilaAulia
 
Tipe Data Terstruktur Materi Struktur Data
Tipe Data Terstruktur Materi Struktur Data
Raja Sakti Arief Daulay
 
Tipe_Data_Terstruktur pada perkuliahan.ppt
Tipe_Data_Terstruktur pada perkuliahan.ppt
NafisClassic
 

More Related Content

What's hot (20)

Laporan praktikum Algoritma dan Pemrograman pertemuan 13
Laporan praktikum Algoritma dan Pemrograman pertemuan 13
Ekha Cahya Nugraha
 
Laporan praktikum Algoritma dan Pemrograman pertemuan 15
Laporan praktikum Algoritma dan Pemrograman pertemuan 15
Ekha Cahya Nugraha
 
Pelatihan Bahasa R
Pelatihan Bahasa R
anom0164
 
C programming language notes (9)
C programming language notes (9)
nakomuri
 
Laporan praktikum Algoritma dan Pemrograman pertemuan 12
Laporan praktikum Algoritma dan Pemrograman pertemuan 12
Ekha Cahya Nugraha
 
Tipe Data pada Bahasa Java
Tipe Data pada Bahasa Java
As Faizin
 
Pengantar R3
Pengantar R3
Raden Maulana
 
Tugas mandiri struktur data
Tugas mandiri struktur data
Asep Jaenudin
 
Structure and pointer
Structure and pointer
Tenia Wahyuningrum
 
BAB 1 PBO C++ Struktur
BAB 1 PBO C++ Struktur
Ricko SkyWriter
 
Bab 2 Dasar Teori perancangan sistem informasi pendaftaran online be smart i...
Bab 2 Dasar Teori perancangan sistem informasi pendaftaran online be smart i...
Ricko SkyWriter
 
Sorting insert binary
Sorting insert binary
Materi Kuliah Online
 
Kontrak Perkuliahan
Kontrak Perkuliahan
formatik
 
Pert.5 linked list
Pert.5 linked list
Ical Militanmannojack
 
4. pemrograman fungsi
4. pemrograman fungsi
Roziq Bahtiar
 
Makalah pencarian dan pengurutan data
Makalah pencarian dan pengurutan data
Ali Must Can
 
Pengantar R
Pengantar R
Raden Maulana
 
Modul PBO Bab-04 - Hubungan antar Kelas
Modul PBO Bab-04 - Hubungan antar Kelas
Rakhmat Dedi Gunawan
 
Jeni Intro2 Bab03 Teknik Pemrograman Lanjut
Jeni Intro2 Bab03 Teknik Pemrograman Lanjut
Individual Consultants
 
Romi oop-02-javafundamentals-29agustus2010
Romi oop-02-javafundamentals-29agustus2010
SabilaAulia
 
Laporan praktikum Algoritma dan Pemrograman pertemuan 13
Laporan praktikum Algoritma dan Pemrograman pertemuan 13
Ekha Cahya Nugraha
 
Laporan praktikum Algoritma dan Pemrograman pertemuan 15
Laporan praktikum Algoritma dan Pemrograman pertemuan 15
Ekha Cahya Nugraha
 
Pelatihan Bahasa R
Pelatihan Bahasa R
anom0164
 
C programming language notes (9)
C programming language notes (9)
nakomuri
 
Laporan praktikum Algoritma dan Pemrograman pertemuan 12
Laporan praktikum Algoritma dan Pemrograman pertemuan 12
Ekha Cahya Nugraha
 
Tipe Data pada Bahasa Java
Tipe Data pada Bahasa Java
As Faizin
 
Tugas mandiri struktur data
Tugas mandiri struktur data
Asep Jaenudin
 
Bab 2 Dasar Teori perancangan sistem informasi pendaftaran online be smart i...
Bab 2 Dasar Teori perancangan sistem informasi pendaftaran online be smart i...
Ricko SkyWriter
 
Kontrak Perkuliahan
Kontrak Perkuliahan
formatik
 
4. pemrograman fungsi
4. pemrograman fungsi
Roziq Bahtiar
 
Makalah pencarian dan pengurutan data
Makalah pencarian dan pengurutan data
Ali Must Can
 
Modul PBO Bab-04 - Hubungan antar Kelas
Modul PBO Bab-04 - Hubungan antar Kelas
Rakhmat Dedi Gunawan
 
Jeni Intro2 Bab03 Teknik Pemrograman Lanjut
Jeni Intro2 Bab03 Teknik Pemrograman Lanjut
Individual Consultants
 
Romi oop-02-javafundamentals-29agustus2010
Romi oop-02-javafundamentals-29agustus2010
SabilaAulia
 

Similar to Tistrukdat1 (20)

Tipe Data Terstruktur Materi Struktur Data
Tipe Data Terstruktur Materi Struktur Data
Raja Sakti Arief Daulay
 
Tipe_Data_Terstruktur pada perkuliahan.ppt
Tipe_Data_Terstruktur pada perkuliahan.ppt
NafisClassic
 
Tieeeeeeeeeeeeeeeeeepe_Data_Terstruktur.ppt
Tieeeeeeeeeeeeeeeeeepe_Data_Terstruktur.ppt
ssuser92549b1
 
Materi 1
Materi 1
Aqil Azizi
 
Laporan praktikum modul vii
Laporan praktikum modul vii
Devi Apriansyah
 
Kontrak Perkuliahan
Kontrak Perkuliahan
formatik
 
Data structure bab 1
Data structure bab 1
Aviv Barkah
 
Pengantar Struktur Data dan Tipe-tipe Data (Pertemuan 2 dan 3)
Pengantar Struktur Data dan Tipe-tipe Data (Pertemuan 2 dan 3)
TututPurnamaSari1
 
StrukDat Pertemuan 1 - Pengenalan Struktur Data.pptx
StrukDat Pertemuan 1 - Pengenalan Struktur Data.pptx
Suprapto60
 
Nested struct
Nested struct
Yessy Asri
 
8 struktur
8 struktur
Faisal Amir
 
8.struktur
8.struktur
Hardini_HD
 
8 struktur
8 struktur
Chabil_Juniar
 
8 struktur
8 struktur
Fisma Ananda
 
Bab 1 abstraksi_tipe_data
Bab 1 abstraksi_tipe_data
arii_manroe
 
Abstraksi tipe data
Abstraksi tipe data
Fahuda E
 
Struktur dan tipe data
Struktur dan tipe data
Muhammad Fahmi
 
Algoritma - tipe data
Algoritma - tipe data
Zombie Black
 
1_STRUKTUR_DATA_ooooooooooouuuuuuuuuuuuuuuuuuuuuuuPPT.ppt
1_STRUKTUR_DATA_ooooooooooouuuuuuuuuuuuuuuuuuuuuuuPPT.ppt
achsinsamas
 
Fathoni m bahan ajar_if2018_prak.struktur data
Fathoni m bahan ajar_if2018_prak.struktur data
STMIK
 
Tipe Data Terstruktur Materi Struktur Data
Tipe Data Terstruktur Materi Struktur Data
Raja Sakti Arief Daulay
 
Tipe_Data_Terstruktur pada perkuliahan.ppt
Tipe_Data_Terstruktur pada perkuliahan.ppt
NafisClassic
 
Tieeeeeeeeeeeeeeeeeepe_Data_Terstruktur.ppt
Tieeeeeeeeeeeeeeeeeepe_Data_Terstruktur.ppt
ssuser92549b1
 
Laporan praktikum modul vii
Laporan praktikum modul vii
Devi Apriansyah
 
Kontrak Perkuliahan
Kontrak Perkuliahan
formatik
 
Data structure bab 1
Data structure bab 1
Aviv Barkah
 
Pengantar Struktur Data dan Tipe-tipe Data (Pertemuan 2 dan 3)
Pengantar Struktur Data dan Tipe-tipe Data (Pertemuan 2 dan 3)
TututPurnamaSari1
 
StrukDat Pertemuan 1 - Pengenalan Struktur Data.pptx
StrukDat Pertemuan 1 - Pengenalan Struktur Data.pptx
Suprapto60
 
Bab 1 abstraksi_tipe_data
Bab 1 abstraksi_tipe_data
arii_manroe
 
Abstraksi tipe data
Abstraksi tipe data
Fahuda E
 
Struktur dan tipe data
Struktur dan tipe data
Muhammad Fahmi
 
Algoritma - tipe data
Algoritma - tipe data
Zombie Black
 
1_STRUKTUR_DATA_ooooooooooouuuuuuuuuuuuuuuuuuuuuuuPPT.ppt
1_STRUKTUR_DATA_ooooooooooouuuuuuuuuuuuuuuuuuuuuuuPPT.ppt
achsinsamas
 
Fathoni m bahan ajar_if2018_prak.struktur data
Fathoni m bahan ajar_if2018_prak.struktur data
STMIK
 
Ad

More from Antonius Rachmat C (9)

Tistrukdat10
Tistrukdat10
Antonius Rachmat C
 
Tistrukdat8 2
Tistrukdat8 2
Antonius Rachmat C
 
Tistrukdat9
Tistrukdat9
Antonius Rachmat C
 
Tistrukdat4
Tistrukdat4
Antonius Rachmat C
 
Tistrukdat7
Tistrukdat7
Antonius Rachmat C
 
Tistrukdat8 1
Tistrukdat8 1
Antonius Rachmat C
 
Tistrukdat5
Tistrukdat5
Antonius Rachmat C
 
Tistrukdat6
Tistrukdat6
Antonius Rachmat C
 
Algoritma Pemrograman
Algoritma Pemrograman
Antonius Rachmat C
 
Ad

Tistrukdat1

  • 1. STRUKTUR DATA (1) Oleh Antonius Rachmat C, S.Kom
  • 2. PENGANTAR Bagaimana cara mengatasi masalah implementasi program dengan komputer? Pemahaman masalah secara menyeluruh dan persiapan data Keputusan operasi-operasi yang dilakukan terhadap data Penyimpanan data-data pada memori sehingga tersimpan dan terstruktur secara logis, operasinya efisien Pengambilan keputusan terhadap bahasa pemrograman mana yang paling cocok untuk jenis data yang ada
  • 3. Perbedaan Tipe Data, Obyek Data & Struktur Data (1) Tipe data adalah jenis data yang mampu ditangani oleh suatu bahasa pemrograman pada komputer. Tiap-tiap bahasa pemrograman memiliki tipe data yang memungkinkan: Deklarasi terhadap variabel tipe data tersebut Menyediakan kumpulan operasi yang mungkin terhadap variabel bertipe data tersebut Jenis obyek data yang mungkin Contoh tipe data di C? Java? Pascal? .NET?
  • 4. Perbedaan Tipe Data, Obyek Data & Struktur Data (2) Obyek Data adalah kumpulan elemen yang mungkin untuk suatu tipe data tertentu. Mis: integer mengacu pada obyek data -32768 s/d 32767, byte 0 s/d 255, string adalah kumpulan karakter maks 255 huruf Struktur Data adalah cara penyimpanan dan pengorganisasian data-data pada memori komputer maupun file secara efektif sehingga dapat digunakan secara efisien, termasuk operasi-operasi di dalamnya.
  • 5. Aktivitas Struktur Data Di dalam struktur data kita berhubungan dengan 2 aktivitas: Mendeskripsikan kumpulan obyek data yang sah sesuai dengan tipe data yang ada Menunjukkan mekanisme kerja operasi-operasinya Contoh: integer (-32768 s/d 32767) dan jenis operasi yang diperbolehkan adalah +, -, *, /, mod, ceil, floor, <, >, != dsb. Struktur data = obyek data + [operasi manipulasi data]
  • 6. Hubungan SD dan Algoritma Dengan pemilihan struktur data yang baik, maka problem yang kompleks dapat diselesaikan sehingga algoritma dapat digunakan secara efisien, operasi-operasi penting dapat dieksekusi dengan sumber daya yang lebih kecil, memori lebih kecil, dan waktu eksekusi yang lebih cepat. Tidak semua struktur data baik dan sesuai. Contoh untuk problem data bank: pengupdate-an harus cepat, sedangkan penambahan/penghapusan data boleh lebih lambat.
  • 7. Ciri Algoritma Ciri algoritma yang baik menurut Donald E.Knuth: Input: ada minimal 0 input atau lebih Ouput: ada minimal 1 output atau lebih Definite: ada kejelasan apa yang dilakukan Efective: langkah yang dikerjakan harus efektif Terminate: langkah harus dapat berhenti (stop) secara jelas
  • 8. ADT (Abstract Data Type) atau Tipe Data Bentukan 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, 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
  • 9. ADT (2) Bahasa C memiliki tipe data numerik dan karakter (seperti int, float, char dan lain-lain). Disamping itu juga memiliki tipe data enumerasi dan structure. Bagaimana jika kita ingin membuat tipe data baru? Untuk pembuatan tipe data baru digunakan keyword typedef Bentuk umum: typedef <tipe_data_lama> <ama_tipe_data_baru>
  • 10. Program Contoh: #include <stdio.h> #include <conio.h> typedef int angka; typedef float pecahan; typedef char huruf; void main(){ clrscr(); angka umur; pecahan pecah; huruf h; huruf nama[10]; printf(&quot;masukkan umur anda : &quot;);scanf(&quot;%d&quot;,&umur); printf(&quot;Umur anda adalah %d&quot;,umur); printf(&quot;\nmasukkan bilangan pecahan : &quot;);scanf(&quot;%f&quot;,&pecah); printf(&quot;Bilangan pecahan %f&quot;,pecah); printf(&quot;\nmasukkan huruf : &quot;);h=getche(); printf(&quot;\nHuruf anda %c&quot;,h); printf(&quot;\nmasukkan nama : &quot;);scanf(&quot;%s&quot;,nama); printf(&quot;Nama anda %s&quot;,nama); getch(); }
  • 12. Stuct Struct adalah tipe data bentukan yang berisi kumpulan variabel-variabel yang bernaung dalam satu nama yang sama dan memiliki kaitan satu sama lain. Berbeda dengan array hanya berupa kumpulan variabel yang bertipe data sama, struct bisa memiliki variabel-variabel yang bertipe data sama atau berbeda, bahkan bisa menyimpan variabel yang bertipe data array atau struct itu sendiri. Variabel-variabel yang menjadi anggota struct disebut dengan elemen struct.
  • 13. Bentuk Umum Bentuk umum: typedef struct <nama_struct> { tipe_data <nama_var>; tipe_data <nama_var>; .... }
  • 14. Pendeklarasian dan penggunaan Struct (1) (menggunakan typedef ) typedef struct Mahasiswa { char NIM[8]; char nama[50]; float ipk; }; untuk menggunakan struct Mahasiswa dengan membuat variabel mhs dan mhs2 Mahasiswa mhs,mhs2; untuk menggunakan struct Mahasiswa dengan membuat variabel array m; Mahasiswa m[100];
  • 15. Pendeklarasian dan penggunaan Struct (2) (tanpa menggunakan typedef ) struct { char NIM[8]; char nama[50]; float ipk; } mhs; Berarti kita sudah mempunyai variabel mhs yang bertipe data struct seperti diatas.
  • 16. Cara penggunaan struct dan pengaksesan elemen-elemennya Penggunaan/pemakaian tipe data struct dilakukan dengan membuat suatu variabel yang bertipe data struct tersebut Pengaksesan elemen struct dilakukan secara individual dengan menyebutkan nama variabel struct diikuti dengan operator titik (.) Misalnya dengan struct mahasiswa seperti contoh di atas, kita akan akses elemen-elemennya seperti contoh berikut:
  • 17. Program Contoh 1 #include <stdio.h> #include <conio.h> //Pendeklarasian tipe data baru struct Mahasiswa typedef struct Mahasiswa{ char NIM[9]; char nama[30]; float ipk; }; void main(){ //Buat variabel mhs bertipe data Mahasiswa Mahasiswa mhs; clrscr(); printf(&quot;NIM = &quot;);scanf(&quot;%s&quot;,mhs.NIM); printf(&quot;Nama = &quot;);scanf(&quot;%s&quot;,mhs.nama); printf(&quot;IPK = &quot;);scanf(&quot;%f&quot;,&mhs.ipk); printf(&quot;Data Anda : \n&quot;); printf(&quot;NIM : %s\n&quot;,mhs.NIM); printf(&quot;Nama : %s\n&quot;,mhs.nama); printf(&quot;IPK : %f\n&quot;,mhs.ipk); getch(); }
  • 18. Hasil
  • 19. Program #include <stdio.h> #include <conio.h> #define phi 3.14 //langsung dianggap variabel 'lingkaran' struct { float jari2; float keliling; float luas; } lingkaran; //fungsi void untuk menghitung luas ingkaran void luasLingkaran(){ //langsung menggunakan luas lingkaran asli lingkaran.luas = lingkaran.jari2 * lingkaran.jari2 * phi; printf(&quot;\nLuas lingkaran = %f&quot;,lingkaran.luas); } //fungsi yang mengembalikan nilai float untuk menghitung keliling lingkaran float kelLingkaran(float j){ return 2*phi*lingkaran.jari2; } int main(){ clrscr(); printf(&quot;Jari-jari = &quot;);scanf(&quot;%f&quot;,&lingkaran.jari2); //panggil fungsi luasLingkaran luasLingkaran(); //panggil fungsi keliling, nilai kembaliannya dikirim ke keliling lingkaran asli lingkaran.keliling = kelLingkaran(lingkaran.jari2); //tampilkan keliling lingkaran asli printf(&quot;\nKeliling lingkaran = %f&quot;,lingkaran.keliling); getch(); }
  • 20. Hasil
  • 21. Struct yang berisi struct lain #include <stdio.h> #include <conio.h> typedef struct Date{ int dd; int mm; int yyyy; }; typedef struct Time{ int h; int m; int s; }; typedef struct Login{ int ID; Date tglLogin; Time waktuLogin; }; int main(){ Login user1; printf(&quot;USER 1\n&quot;); printf(&quot;ID : &quot;);scanf(&quot;%d&quot;,&user1.ID); printf(&quot;Tanggal Login\n&quot;); printf(&quot;Hari : &quot;);scanf(&quot;%d&quot;,&user1.tglLogin.dd); printf(&quot;Bulan : &quot;);scanf(&quot;%d&quot;,&user1.tglLogin.mm); printf(&quot;Tahun : &quot;);scanf(&quot;%d&quot;,&user1.tglLogin.yyyy); printf(&quot;Waktu Login\n&quot;); printf(&quot;Jam : &quot;);scanf(&quot;%d&quot;,&user1.waktuLogin.h); printf(&quot;Menit : &quot;);scanf(&quot;%d&quot;,&user1.waktuLogin.m); printf(&quot;Detik : &quot;);scanf(&quot;%d&quot;,&user1.waktuLogin.s); printf(&quot;Terimakasih\n&quot;); printf(&quot;Data Anda :\n&quot;); printf(&quot;ID : %d\n&quot;,user1.ID); printf(&quot;Date : %d - %d - %d\n&quot;,user1.tglLogin.dd,user1.tglLogin.mm,user1.tglLogin.yyyy); printf(&quot;ID : %d:%d:%d\n&quot;,user1.waktuLogin.h,user1.waktuLogin.m,user1.waktuLogin.s); getch(); }
  • 22. Hasil
  • 23. Array of Struct #include <stdio.h> #include <conio.h> typedef struct Date{ int dd; int mm; int yyyy; }; typedef struct Time{ int h; int m; int s; }; typedef struct Login{ int ID; Date tglLogin; Time waktuLogin; }; int main(){ Login user[3]; //3 user for(int i=0;i<3;i++){ printf(&quot;\nUSER ke-%d\n&quot;,i+1); printf(&quot;ID : &quot;);scanf(&quot;%d&quot;,&user[i].ID); printf(&quot;Tanggal Login\n&quot;); printf(&quot;Hari : &quot;);scanf(&quot;%d&quot;,&user[i].tglLogin.dd); printf(&quot;Bulan : &quot;);scanf(&quot;%d&quot;,&user[i].tglLogin.mm); printf(&quot;Tahun : &quot;);scanf(&quot;%d&quot;,&user[i].tglLogin.yyyy); printf(&quot;Waktu Login\n&quot;); printf(&quot;Jam : &quot;);scanf(&quot;%d&quot;,&user[i].waktuLogin.h); printf(&quot;Menit : &quot;);scanf(&quot;%d&quot;,&user[i].waktuLogin.m); printf(&quot;Detik : &quot;);scanf(&quot;%d&quot;,&user[i].waktuLogin.s); printf(&quot;Terimakasih Atas Pengisiannya\n&quot;); printf(&quot;\nData User ke-%d:\n&quot;,i+1); printf(&quot;Login ID : %d\n&quot;,user[i].ID); printf(&quot;Login Date : %d - %d - %d\n&quot;,user[i].tglLogin.dd,user[i].tglLogin.mm,user[i].tglLogin.yyyy); printf(&quot;Login Time : %d:%d:%d\n&quot;,user[i].waktuLogin.h,user[i].waktuLogin.m,user[i].waktuLogin.s); } getch(); }
  • 24. Hasil
  • 25. LATIHAN Buatlah program menu yang berisi data-data KTP penduduk yang disimpan dalam array struct 1 dimensi dan dapat dilakukan penambahan data, pencarian data, penampilan data dan penghapusan data. NEXT : SEARCHING ARRAY