Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Kontrak Perkuliahan

881 views

Published on

Struktur Data

  • Be the first to comment

  • Be the first to like this

Kontrak Perkuliahan

  1. 1. SEMESTER GANJIL 2009/2010
  2. 2. STRUKTUR DATA Welcome & Enjoying this class...
  3. 3. KONTRAK PERKULIAHAN TEKNIK INFORMATIKA
  4. 4. Sistem Penilaian BOBOT RANGE NILAI Kehadiran 10% 85 – 100 A Tugas 20% 70 – 84 B Mid Test 30% 55 – 69 C Final Test 40% 45 – 54 D <45 E
  5. 5. Ketentuan Lain : <ul><li>Nilai T diberikan akibat mahasiswa belum menyelesaikan tugasnya dengan alasan yang dapat diterima </li></ul><ul><li>Batas perbaikan nilai “T” adalah 1 (satu) bulan sejak tanggal dikeluarkan/ diumumkannya nilai tersebut, jika tidak maka secara otomatis nilai “T” menjadi “E”. </li></ul><ul><li>Mahasiswa yang diperbolehkan mengikuti ujian akhir adalah mereka yang telah mengikuti perkuliahan minimal 75% dari total frekwensi perkuliahan. </li></ul>
  6. 6. Disiplin Perkuliahan <ul><li>Setiap mahasiswa diwajibkan mengikuti perkuliahan sesuai jadwal yang telah ditentukan. Toleransi keterlambatan 15 menit setelah pelajaran dimulai. </li></ul><ul><li>Toleransi keterlambatan Dosen 30 menit (jika tidak ada pemberitahuan sebelumnya). Dalam kondisi ini mahasiswa diperkenankan pulang/ meninggalkan ruang kuliah. </li></ul>
  7. 7. Disiplin Perkuliahan <ul><li>Selama perkuliahan berlangsung mahasiswa tidak diperkenankan memakai topi, baju kaos oblong, sandal, jaket dan merokok dalam kelas . </li></ul>
  8. 9. Bahan Bacaan
  9. 11. Struktur Data <ul><li>Struktur Data menyangkut susunan fisik data dalam komputer </li></ul><ul><li>Struktur Data menyerupai beberapa bentuk teknik kompresi data </li></ul><ul><ul><li>Agar penyimpanan lebih efesien </li></ul></ul><ul><ul><li>Agar tersusun lebih terurut </li></ul></ul><ul><ul><li>Agar data retrieval lebih efektif </li></ul></ul>
  10. 14. • Struktur data adalah suatu koleksi atau kelompok data yang dapat dikarakterisasikan oleh organisasi serta operasi yang didefinisikan terhadapnya • Struktur data diperlukan dalam perencanaan Algoritma dan penyusunan program sebagai dasar teknik dari Database.
  11. 15. • Data secara umum dapat dikategorikan : • Tipe data sederhana atau data sederhana 1. Tunggal :Integer, Real, Boolean, Karakter 2. Majemuk :String • Struktur Data 1. Sederhana :Array dan Record 2. Majemuk Linier :Linier Linked List, Stack, Queue Non Linier :Binary Tree, Binary Search Tree, General Tree, Tree, Graf
  12. 16. Tipe Data Integer • Anggota dari himpunan bilangan : • {..., -(n+1), -n, ..., -2, -1, 0, 1, 2, ..., n, n+1, ...} • Operasi dasar yaitu : penjumlahan, pengurangan, perkalian, pembagian dan perpangkatan • Pembagian Integer (DIV) • Hasil pembagian integer DIV adalah sebuah integer (menghilangkan bagian pecahan dari hasil pembagian) Contoh : 27 DIV 4 = 6 • Selain itu terdapat operasi MOD (Modulo) adalah sisa dari pembagian Contoh : 27 MOD 4 = 3 • Operator yang bekerja terhadap sepasang integer (operand) disebut Binary Operator. Sedangkan operator yang hanya bekerja terhadap satu operand saja disebut Unary Operator.
  13. 17. Tipe Data Real • Data numerik yang bukan termasuk integer, digolongkan dalam jenis data real. Ditulis menggunakan titik desimal (atau koma desimal). Dimasukkan ke dalam memori komputer memakai sistem floating point, disebut Scientific Notation. • Penyajiannya terdiri dari : pecahan dan eksponen. Contoh : • Di dalam sistem desimal, 123000 = 0.123 * 10 6 • di sini 0.123 adalah mantissa atau pecahan, sedangkan 6 adalah eksponennya. • Secara umum suatu bilangan real X dituliskan M * RE • di sini : M dijadikan pecahan, R adalah radixnya dan E merupakan eksponennya
  14. 18. Tipe Data Boolean • Disebut juga jenis data logical. Anggota { true atau false}. • Operator Logika, yaitu : AND, OR, NOT • Operator AND akan menghasilkan nilai true, jika kedua operand bernilai true. • Operator OR akan menghasilkan nilai true, jika salah satu operand bernilai true • Operator NOT merupakan “precedence” dari operator AND dan OR. • Dalam suatu ekspresi yang tidak menggunakan tanda kurung, operator NOT harus dievaluasi sebelum operator AND dan OR. B. Operator Relasional, yaitu : >, <, >=, <=, <> dan = Contoh : 6 < 8 = True 9 < 8 = False
  15. 19. Tipe Data karakter • Elemen dari suatu himpunan yang terdiri atas bilangan, abjad dan simbol khusus. • (0,1,...,8,9, A, B, ..., Y,Z, +, -,*,Ö, ...}
  16. 20. Operasi string • Barisan hingga karakter yang dibentuk oleh suatu kumpulan dari karakter. • Karakter yang digunakan untuk membentuk suatu string disebut alfabet. Dalam penulisannya, suatu string berada dalam tanda “aphosthrope”. Contoh : • Misal diberikan himpunan alfabet A = {C,D,1}. • String yang dapat dibentuk dari alfabet di atas di antaranya : ‘CD1’,’CDD’,’DDC’,’CDC1’,... Dan sebagainya, termasuk “null string” atau “empty string” • Himpunan tak hingga dari string yang dibentuk oleh alfabet A disebut VOCABULARY, Notasi : VA atau A* • Jika suatu string dibentuk dari alfabet {0,1}, maka string yang terbentuk disebut dengan “ Bit String”.
  17. 21. Operasi String
  18. 22. LENGTH Nilai dari operasi ini adalah suatu integer yang menunjukkan panjang dari suatu string . Notasi : LENGTH(S) = N (integer) di sini S = String, N = integer Contoh : Jika diberikan string S =‘a1a2 ... aN’ Maka LENGTH(S) = N Jika diberikan string S =“SISTEMINFORMASI” Maka LENGTH(S) = 15 Jika diberikan string S =“SISTEM INFORMASI” Maka LENGTH(S) = 16 Jika diberikan string S = “ABCD20” Maka LENGTH(S) = 6
  19. 24. SUBSTR Operasi ini adalah operasi membentuk string baru, yang merupakan bagian dari string yang diketahui. Notasi : SUBSTR(S, i, j) di sini : S = string yang diketahui i dan j = integer i = posisi awal substring 1 £ i £ LENGTH(S) j = banyak karakter yang diambil 0 £ j £ LENGTH(S) dan 0 £ i+j-1 £ LENGTH(S) Contoh : Diberikan S = ‘a1a2 ... aN’ ; i = 2 ; j= 4 Maka SUBSTR(S,i,j) = SUBSTR(S,2,4) =‘a2a3a4a5’ String S = &quot;Sistem Informasi&quot; SUBSTR(S,i, j) , i = 4 j = 8 SUBSTR(S,4,8) = &quot;tem Info&quot; String S = &quot;Sistem&quot; SUBSTR(S,1,3) = &quot;Sis&quot; LENGTH(SUBSTR(S,1,3)) = 3 String S = &quot;Informasi&quot; SUBSTR(S,4,5) = &quot;ormas&quot; LENGTH(SUBSTR(S,4,5)) = 5
  20. 25. INSERT Operasi ini adalah untuk menyisipkan suatu string ke dalam string lain. Bentuk umumnya adalah : INSERT(S1,S2,i). S1 dan S2 masing-masing adalah suatu string dan i adalah posisi awal S2 pada S1. Contoh : Misalkan : S1 = ‘a1a2 ... aN’ S2 = ‘b1b2 ... bM’ INSERT(S1, S2,3) = ‘a1a2b1b2 ... bMa3a4... aN’ String S1 = &quot;Sistem&quot; String S2 = &quot;Informasi&quot; INSERT(S1,S2,4) = “SisInformasitem” INSERT(S2,S1,4) = “InfSistemormasi
  21. 26. <ul><li>Bagaimana cara mengatasi masalah implementasi program dengan komputer? </li></ul><ul><ul><li>Pemahaman masalah secara menyeluruh dan persiapan data </li></ul></ul><ul><ul><li>Keputusan operasi-operasi yang dilakukan terhadap data </li></ul></ul><ul><ul><li>Penyimpanan data-data pada memori sehingga tersimpan dan terstruktur secara logis, operasinya efisien </li></ul></ul><ul><ul><li>Pengambilan keputusan terhadap bahasa pemrograman mana yang paling cocok untuk jenis data yang ada </li></ul></ul>
  22. 27. Perbedaan Tipe Data, Obyek Data & Struktur Data (1) <ul><li>Tipe data adalah jenis data yang mampu ditangani oleh suatu bahasa pemrograman pada komputer. </li></ul><ul><li>Tiap-tiap bahasa pemrograman memiliki tipe data yang memungkinkan: </li></ul><ul><ul><li>Deklarasi terhadap variabel tipe data tersebut </li></ul></ul><ul><ul><li>Menyediakan kumpulan operasi yang mungkin terhadap variabel bertipe data tersebut </li></ul></ul><ul><ul><li>Jenis obyek data </li></ul></ul><ul><ul><li>Contoh tipe data di C? Java? Pascal? </li></ul></ul>
  23. 28. Perbedaan Tipe Data, Obyek Data & Struktur Data (2) <ul><li>Obyek Data adalah kumpulan elemen yang mungkin untuk suatu tipe data tertentu. </li></ul><ul><ul><li>Mis: integer mengacu pada obyek data -32768 s/d 32767, byte 0 s/d 255, string adalah kumpulan karakter maks 255 huruf </li></ul></ul><ul><li>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. </li></ul>
  24. 29. Aktivitas Struktur Data <ul><li>Di dalam struktur data kita berhubungan dengan 2 aktivitas: </li></ul><ul><ul><li>Mendeskripsikan kumpulan obyek data yang sah sesuai dengan tipe data yang ada </li></ul></ul><ul><ul><li>Menunjukkan mekanisme kerja operasi-operasinya </li></ul></ul><ul><ul><ul><li>Contoh: integer (-32768 s/d 32767) dan jenis operasi yang diperbolehkan adalah +, -, *, /, mod, ceil, floor, <, >, != dsb. </li></ul></ul></ul><ul><li>Struktur data = obyek data + [operasi manipulasi data] </li></ul>
  25. 30. Hubungan Struktur Data dan Algoritma <ul><li>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. </li></ul>
  26. 31. Ciri Algoritma <ul><li>Ciri algoritma yang baik </li></ul><ul><li> - Input: ada minimal 0 input atau lebih </li></ul><ul><ul><li>Ouput: ada minimal 1 output atau lebih </li></ul></ul><ul><ul><li>Definite: ada kejelasan apa yang dilakukan </li></ul></ul><ul><ul><li>Efective: langkah yang dikerjakan harus efektif </li></ul></ul><ul><ul><li>Terminate: langkah harus dapat berhenti (stop) secara jelas </li></ul></ul>
  27. 32. ADT dan UDT atau Tipe Data Bentukan <ul><li>Bahasa pemrograman bisa memiliki tipe data: </li></ul><ul><ul><li>Built-in : sudah tersedia oleh bahasa pemrograman tersebut </li></ul></ul><ul><ul><ul><li>Tidak berorientasi pada persoalan yang dihadapi. </li></ul></ul></ul><ul><ul><li>UDT : User Defined Type, dibuat oleh pemrogram. </li></ul></ul><ul><ul><ul><li>Mendekati penyelesaian persoalan yang dihadapi </li></ul></ul></ul><ul><ul><ul><li>Contoh: record pada Pascal, struct pada C. </li></ul></ul></ul><ul><ul><li>ADT : Abstract Data Type </li></ul></ul><ul><ul><ul><li>memperluas konsep UDT dengan menambahkan pengkapsulan atau enkapsulasi, berisi sifat-sifat dan operasi-operasi yang bisa dilakukan terhadap kelas tersebut. </li></ul></ul></ul><ul><ul><ul><li>Contoh: class pada Java </li></ul></ul></ul>
  28. 33. UDT (2) <ul><li>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? </li></ul><ul><li>Untuk pembuatan tipe data baru digunakan keyword typedef </li></ul><ul><li>Bentuk umum: </li></ul><ul><li>typedef <tipe_data_lama> <tipe_data_baru>; </li></ul>
  29. 34. Program <ul><li>Contoh: </li></ul><ul><li>#include <stdio.h> </li></ul><ul><li>#include <conio.h> </li></ul><ul><li>typedef int angka; </li></ul><ul><li>typedef float pecahan; </li></ul><ul><li>typedef char huruf; </li></ul><ul><li>void main(){ </li></ul><ul><li>clrscr(); </li></ul><ul><li>angka umur; </li></ul><ul><li>pecahan pecah; </li></ul><ul><li>huruf h; </li></ul><ul><ul><ul><li>huruf nama[10]; </li></ul></ul></ul><ul><li>printf(&quot;masukkan umur anda : &quot;);scanf(&quot;%d&quot;,&umur); </li></ul><ul><li>printf(&quot;Umur anda adalah %d&quot;,umur); </li></ul><ul><li>printf(&quot; masukkan bilangan pecahan : &quot;);scanf(&quot;%f&quot;,&pecah); </li></ul><ul><li>printf(&quot;Bilangan pecahan %f&quot;,pecah); </li></ul><ul><li>printf(&quot; masukkan huruf : &quot;);h=getche(); </li></ul><ul><li>printf(&quot; Huruf anda %c&quot;,h); </li></ul><ul><li>printf(&quot; masukkan nama : &quot;);scanf(&quot;%s&quot;,nama); </li></ul><ul><li>printf(&quot;Nama anda %s&quot;,nama); </li></ul><ul><li>getch(); </li></ul><ul><li>} </li></ul>
  30. 35. Hasil Program
  31. 36. Struct / record <ul><li>Struct adalah tipe data bentukan yang berisi kumpulan variabel-variabel yang bernaung dalam satu nama yang sama dan memiliki kaitan satu sama lain. </li></ul><ul><li>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. </li></ul><ul><li>Variabel-variabel yang menjadi anggota struct disebut dengan elemen struct. </li></ul>
  32. 37. Bentuk Umum <ul><li>Bentuk umum: </li></ul><ul><li>typedef struct <nama_struct> { </li></ul><ul><li>tipe_data <nama_var>; </li></ul><ul><li>tipe_data <nama_var>; </li></ul><ul><li>.... </li></ul><ul><li>} </li></ul>
  33. 38. Pendeklarasian dan penggunaan Struct (1) (menggunakan typedef ) <ul><li>typedef struct Mahasiswa { </li></ul><ul><li>char NIM[8]; </li></ul><ul><li>char nama[50]; </li></ul><ul><li>float ipk; </li></ul><ul><li>}; </li></ul><ul><li>untuk menggunakan struct Mahasiswa dengan membuat variabel mhs dan mhs2 </li></ul><ul><li>Mahasiswa mhs,mhs2; </li></ul><ul><li>untuk menggunakan struct Mahasiswa dengan membuat variabel array m; </li></ul><ul><li>Mahasiswa m[100]; </li></ul>
  34. 39. Pendeklarasian dan penggunaan Struct (2) (tanpa menggunakan typedef ) <ul><li>struct { </li></ul><ul><li>char NIM[8]; </li></ul><ul><li>char nama[50]; </li></ul><ul><li>float ipk; </li></ul><ul><li>} mhs; </li></ul><ul><li>Berarti kita sudah mempunyai variabel mhs yang bertipe data struct seperti diatas. </li></ul>
  35. 40. Cara penggunaan struct dan pengaksesan elemen-elemennya <ul><li>Penggunaan/pemakaian tipe data struct dilakukan dengan membuat suatu variabel yang bertipe data struct tersebut </li></ul><ul><li>Pengaksesan elemen struct dilakukan secara individual dengan menyebutkan nama variabel struct diikuti dengan operator titik (.) </li></ul><ul><li>Misalnya dengan struct mahasiswa seperti contoh di atas, kita akan akses elemen-elemennya seperti contoh berikut: </li></ul>
  36. 41. Program #include <stdio.h> #include <conio.h> //Pendeklarasian tipe data baru struct Mahasiswa typedef struct Mahasiswa{ char NIM[9]; char nama[30]; float ipk; }Mahasiswa; 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 : &quot;); printf(&quot;NIM : %s &quot;,mhs.NIM); printf(&quot;Nama : %s &quot;,mhs.nama); printf(&quot;IPK : %f &quot;,mhs.ipk); getch(); }
  37. 42. Hasil
  38. 43. Program <ul><li>#include <stdio.h> </li></ul><ul><li>#include <conio.h> </li></ul><ul><li>#define phi 3.14 </li></ul><ul><li>//langsung dianggap variabel 'lingkaran' </li></ul><ul><li>struct { </li></ul><ul><li>float jari2; </li></ul><ul><li>float keliling; </li></ul><ul><li>float luas; </li></ul><ul><li>} lingkaran; </li></ul><ul><li>//fungsi void untuk menghitung luas ingkaran </li></ul><ul><li>void luasLingkaran(){ </li></ul><ul><li>//langsung menggunakan luas lingkaran asli </li></ul><ul><li>lingkaran.luas = lingkaran.jari2 * lingkaran.jari2 * phi; </li></ul><ul><li>printf(&quot; Luas lingkaran = %f&quot;,lingkaran.luas); </li></ul><ul><li>} </li></ul><ul><li>//fungsi yang mengembalikan nilai float untuk menghitung keliling lingkaran </li></ul><ul><li>float kelLingkaran(float j){ </li></ul><ul><li>return 2*phi*lingkaran.jari2; </li></ul><ul><li>} </li></ul><ul><li>int main(){ </li></ul><ul><li>clrscr(); </li></ul><ul><li>printf(&quot;Jari-jari = &quot;);scanf(&quot;%f&quot;,&lingkaran.jari2); </li></ul><ul><li>//panggil fungsi luasLingkaran </li></ul><ul><li>luasLingkaran(); </li></ul><ul><li>//panggil fungsi keliling, nilai kembaliannya dikirim ke keliling lingkaran asli </li></ul><ul><li>lingkaran.keliling = kelLingkaran(lingkaran.jari2); </li></ul><ul><li>//tampilkan keliling lingkaran asli </li></ul><ul><li>printf(&quot; Keliling lingkaran = %f&quot;,lingkaran.keliling); </li></ul><ul><li>getch(); </li></ul><ul><li>} </li></ul>
  39. 44. Hasil
  40. 45. Struct yang berisi struct lain #include <stdio.h> #include <conio.h> typedef struct Date{ int dd; int mm; int yyyy; }Date; typedef struct Time{ int h; int m; int s; }Time; typedef struct Login{ int ID; Date tglLogin; Time waktuLogin; }Login; int main(){ Login user1; printf(&quot;USER 1 &quot;); printf(&quot;ID : &quot;);scanf(&quot;%d&quot;,&user1.ID); printf(&quot;Tanggal Login &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 &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 &quot;); printf(&quot;Data Anda : &quot;); printf(&quot;ID : %d &quot;,user1.ID); printf(&quot;Date : %d - %d -%d &quot;,user1.tglLogin.dd,user1.tglLogin.mm,user1.tglLogin.yyyy); printf(&quot;ID :%d:%d:%d &quot;,user1.waktuLogin.h,user1.waktuLogin.m,user1.waktuLogin.s); getch(); }
  41. 46. Hasil
  42. 47. Array of Struct #include <stdio.h> #include <conio.h> typedef struct Date{ int dd; int mm; int yyyy; }Date; typedef struct Time{ int h; int m; int s; }Time; typedef struct Login{ int ID; Date tglLogin; Time waktuLogin; }Login; int main(){ Login user[3]; //3 user for(int i=0;i<3;i++){ printf(&quot; USER ke-%d &quot;,i+1); printf(&quot;ID : &quot;);scanf(&quot;%d&quot;,&user[i].ID); printf(&quot;Tanggal Login &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 &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 &quot;); printf(&quot; Data User ke-%d: &quot;,i+1); printf(&quot;Login ID : %d &quot;,user[i].ID); printf(&quot;Login Date : %d - %d - %d &quot;,user[i].tglLogin.dd,user[i].tglLogin.mm,user[i].tglLogin.yyyy); printf(&quot;Login Time : %d:%d:%d &quot;,user[i].waktuLogin.h,user[i].waktuLogin.m,user[i].waktuLogin.s); } getch(); }
  43. 48. Hasil
  44. 49. Operasi data pada array of struct <ul><li>Tambah </li></ul><ul><li>Hapus </li></ul><ul><li>Edit </li></ul>
  45. 50. TUGAS <ul><li>Buat algoritma dengan menggunkan simbol untuk menentukan nilai mahasiswa dengan ketentuan sbb: </li></ul><ul><ul><li>Nilai 85 ke atas A </li></ul></ul><ul><ul><li>Nilai 70-84 B </li></ul></ul><ul><ul><li>Nilai 55-69 C </li></ul></ul><ul><ul><li>Nilai 45-54 D </li></ul></ul><ul><ul><li>Kurang dari E </li></ul></ul><ul><li>Buat Type data bentukan dari biodata anda minimal 7 variabel </li></ul><ul><li>Tugas Dikumpul Tanggal 2 Nopember 2009 </li></ul>

×