1 / 50

Struktur Data ( Data Structure ) – IS 2313

Imam Rozali , S.T., M.T. Struktur Data ( Data Structure ) – IS 2313. System Basic Theory. Tuesday 07.00- 13 . 0 0, T hursd ay 07 . 0 0-1 3 .00 Reference: Liem, Inggriani. Diktat Struktur Data, ITB, 2003.

lali
Download Presentation

Struktur Data ( Data Structure ) – IS 2313

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Imam Rozali, S.T., M.T. Struktur Data(Data Structure) – IS 2313

  2. System Basic Theory • Tuesday 07.00-13.00, Thursday 07.00-13.00 • Reference: • Liem, Inggriani. Diktat Struktur Data, ITB, 2003. • Thomas A. Standish, “Data Stuctures, Algorithms & Software Principles in C” Addison-Wesley, 1995. • Additional Reference • Internet • E-mail : imr@ittelkom.ac.id, imam@telkompdc.com • Phone : 081220670006, 02270303011

  3. Evaluation • Class Participation: - % • Quiz: 10% • Assignment : 20% • Midterm: 35% • Final : 35%

  4. Chapter 1 : Introduction to Data Structure

  5. Outline • LatarBelakang • SekilasTentang C • Proses Kompilasi dan Linking Program C • Struktur Penulisan Program C • Fungsi-Fungsi Dasar CUDT (User Defined Type) atau Tipe Data Bentukan • Pengenalan Praprosesor #include • Sekilas Tentang Array • Sekilas Tentang Struct • Contoh Program Struct • Struktur Data dalamPemrograman • Memory Address • Data Structures

  6. Latar Belakang • Algoritma • Program • Data • Struktur Data Algoritma + Struktur Data = Program

  7. Latar Belakang • Cirialgoritma yang baikmenurut Donald E.Knuthadalah: • Input: ada minimal 0 input ataulebih • Ouput: ada minimal 1 output ataulebih • Definite: adakejelasanapa yang dilakukan • Efective: langkah yang dikerjakanharusefektif • Terminate: langkahharusdapatberhenti (stop) secarajelas

  8. Sekilas Tentang C • Bahasa C sebagai bahasa tingkat menengah • Beberapakelebihandaribahasa C: • Bahasa C tersediahampirdisemuajeniskomputer, baikmikro, mini maupunkomputerbesar (mainframe computer). • Kodebahasa C bersifatportabel. • Berbagaistruktur data danpengendalianprosesdisediakandalam C sehinggamemungkinkanuntukmembuat program yang terstruktur. • Dibandingkandenganbahasamesinatau assembly, C jauhlebihmudahdipahamidanpemrogramtidakperlumengetahuimesinkomputersecaradetil. • C memungkinkanmemanipulasi data dalambentuk bit maupun byte. Di sampingitujugamemungkinkanuntukmemanipulasialamatdarisuatu data atau pointer.

  9. Sekilas Tentang C • Kelemahanbahasa C yang dirasakanolehparapemulabahasa C: • Banyaknya operator sertafleksibilitaspenulisan program kadang-kadangmembingungkanpemakai. Kalautidakdikuasaisudahtentuakanmenimbulkanmasalah. • Para pemrogram C tingkatpemulaumumnyabelumpernahmengenal pointer dantidakterbiasamenggunakannya.

  10. ProsesKompilasidan Linking Program C • Agar suatu program dalambahasapemrogramandapatdimengertiolehkomputer, program haruslahditerjemahkandahulukedalamkodemesin. • Adapunpenerjemah yang digunakanbisaberupa interpreter ataukompiler.

  11. ProsesKompilasidan Linking Program C

  12. StrukturPenulisan Program C • Program C tersusunatassejumlahblokfungsi. • Sebuah program minimal mengandungsebuahfungsi. • Fungsipertama yang harusadadalam program C dansudahditentukannamanyaadalah main(). • Bagianpernyataanfungsi (seringdisebuttubuhfungsi) diawalidengantandakurungkurawalbuka ({) dandiakhiridengantandakurungkurawaltutup (}).

  13. StrukturPenulisan Program C

  14. Fungsi-FungsiDasar C • Pada C, terdapatbeberapafungsidasar yang merupakanstruktur yang harusadadalambahasapemrograman C. Beberapafungsi yang terdapatdalambahasa C adalah: • Fungsi main() • Fungsiprintf()

  15. Fungsi-FungsiDasar C • Fungsiprintf() merupakanfungsi yang umumdipakaiuntukmenampilkansuatukeluaranpadalayarperaga. Untukmenampilkantulisan: • Selamatbelajarbahasa C • printf(“Selamatbelajarbahasa C”); • Dalambentuk yang lebihumum, format printf() • printf(“string kontrol”, daftarargumen);

  16. Fungsi-FungsiDasar C • \” menyatakankarakterpetik-ganda • \\ menyatakankarakter backslash • \t menyatakankarakter tab • %d untukmenampilkanbilanganbulat (integer) • %f untukmenampilkanbilangantitik-mengambang (pecahan) • %c untukmenampilkansebuahkarakter • %s untukmenampilkansebuah string

  17. Fungsi-FungsiDasar C • #include <stdio.h> • main( ) • { • printf(“No : %d\n”, 10); • printf(“Nama : %s\n”, “Ali”); • printf(“Nilai : %f\n”,80.5); • printf(“Huruf : %c\n”,‘A’); • }

  18. UDT (User Defined Type) atauTipe Data Bentukan • Bahasapemrogramanbisamemilikitipe data: • Built-in : sudahtersediaolehbahasapemrogramantersebut. Tidakberorientasipadapersoalan yang dihadapi. • UDT : User Defined Type, dibuatolehpemrogram.Mendekatipenyelesaianpersoalan yang dihadapi. Contoh: record pada Pascal, structpada C, class pada Java. • ADT : Abstract Data Type memperluaskonsep UDT denganmenambahkanpengkapsulanatauenkapsulasi, berisisifat-sifatdanoperasi-operasi yang bisadilakukanterhadapkelastersebut.Contoh: class pada Java. • Tipe data baru : • typedef <tipe_data_lama> <tipe_data_baru>

  19. UDT (User Defined Type) atauTipe Data Bentukan

  20. Pengenalanpraprosesor #include • #include merupakansalahsatujenispengarahpraprosesor (preprocessor directive). Pengarahpraprosesorinidipakaiuntukmembaca file yang diantaranyaberisideklarasifungsidandefinisikonstanta. • File-file inimempunyaiciriyaitunamanyadiakhiridenganekstensi .h. Misalnyapada program #include <stdio.h> menyatakanpadakompiler agar membaca filebernamastdio.hsaatpelaksanaankompilasi. • Bentukumum #include: • #include “namafile”

  21. Sekilas Tentang Array • Array adalahkumpulan data yang bertipesama yang menggunakannama yang sama. Denganmenggunakan array, sejumlahvariabeldapatmemakainama yangsama. Antarasatuvariabeldenganvariabel lain didalam array dibedakanberdasarkannomorelemen (subscript).

  22. Sekilas Tentang Array

  23. Sekilas Tentang Array

  24. Sekilas Tentang Array

  25. Sekilas Tentang Array

  26. Sekilas TentangStruct • Structadalahtipe data bentukan yang berisikumpulanvariabel-variabel yang bernaungdalamsatunama yang samadanmemilikikaitansatusama lain.

  27. Sekilas TentangStruct

  28. Sekilas TentangStruct

  29. Struktur Data dalamPemrograman • Pemakaianstruktur data yang tepatdidalamprosespemrogramanakanmenghasilkan: • Algoritma yang lebihjelasdantepat, sehinggamenjadikan program secarakeseluruhanlebihefisiendansederhana. • Membuat program lebihringkas, lebihbersih, lebihelegan,lebihmudahdanlebihmampuberkinerjatinggi (karenaefisiendalampenggunaanmemoridanwaktu) • Program berjalanmembutuhkanwaktubeberapadetik, dimanastruktur yang lain mungkinakanmembutuhkanribuandetik

  30. Struktur Data dalamPemrograman • Tahapanpemrograman: • Analisamasalah • Memilihalgoritmadanstruktur data untukmenyelesaikanmasalahitu • Coding

  31. Struktur Data dalamPemrograman • Struktur Data yang telahdipelajaristruktur data dengan type : • Dasaryaitu integer, real, boolean, character. NamaInformasi yang disefinisikandengan type dasarinihanyadapatmenyimpansatunilai. • Bentukanyaitu type yang merupakankomposisidari type bentukan. Namainformasi yang didefiniskandengan type inihanyamengandungsatunilaisesuaidengankompisisidari type yang didefinisikan. • Tabel/Array yaitu type yang mendefinisikansekumpulanelemenbertypesama, dannantinyakumpulanelementersebutakandialokasikansecarakontigu, denganakseselemen yang ditentukanolehindeks. Namainformasi yang bertypetabeldapatmenyimpanbanyaknilai, tergantungpadaukurantabel.

  32. Struktur Data dalamPemrograman • Ada 3 tingkatanstruktur data : • DefinisiFungsionaladalahpendefinisianstruktur data dan operator-operator yang berlakupadastrukturtersebut • RepresentasiLojikadalahspesifikasi “type” daristruktur, yang menyangkutnama type danspesifikasisemua operator, namundalamdefinisiini, alamatmasihbelumditentukansecarapasti. • Representasifisikadalahspesifikasidaristruktur data sesuaidenganimplementasinyadalammemorikomputer.

  33. Struktur Data dalamPemrograman • Adaduamacamimplementasifisik : • Representasifisikkontiguadalahsekumpulan data yang penempatannyadalammemorisecarafisikadalahkontigu, setiapelemenditaruhberurutanposisialamatnyadenganelemen lain. Karenaituuntukmencapaielemenberikutnya, cukupmelaluisuksesoralamatdari “current element”. Strukturinidisebutstruktur yang statis. • Representasifisikberkaitadalahsekumpulan data yang penempatannyadalammemoridapatterpencar-pencar, namundapatditelusuriberkatadanyainformasiberupaalamat, yang menghubungkanelemen yang satudengan yang lain. Alamatmemoridapatdialokasikan/dapat pula dibebaskansesuaidengankeperluan, sehinggabesarnyamemori yang dipakaibisamembesardanmengecil. Strukturinidisebutstruktur yang dinamis.

  34. Struktur Data dalamPemrograman • Beberapajenisstruktur data adalahsebagaiberikut: • Array • Linear List • Stack • Queue • List • Connected List • Circular List • Double Linked List • Multi List Structure • Tree Structure

  35. Struktur Data dalamPemrograman

  36. Struktur Data dalamPemrograman List Linier Multi List Tree Antrian Graph Stack

  37. MEMORY ADDRESS • Operand bilangan dan karakter, seperti halnya instruksi, disimpan dalam memori komputer. • Memori terdiri atas jutaan sel penyimpanan, dimana tiap sel tersebut menyimpan suatu bit informasi yang berupa nilai 0 atau 1. Karena bit tunggal mewakili informasi yang sangat sedikit, maka bit jarang ditangani secara individu. • Pendekatan yang umum adalah menanganinya dalam kelompok dengan ukuran tertentu. Untuk tujuan ini, memori tersebut diatur sehingga kelompok n bit dapat disimpan dan diambil dalam satu operasi dasar tunggal. • Tiap kelompok n bit disebut sebagai word informasi, dan n disebut word length.

  38. MEMORY ADDRESS • Komputer modern memiliki word length yang biasanyaberkisardari 16 hingga 64 bit. Suatu unit 8 bit disebut byte. • Instruksimesinmungkinmemerlukansatuataulebih word untukrepresentasinya. Jika word length suatukomputeradalah 32 bit, maka word tunggaldapatmenyimpan 32-bit bilangan 2’s-complement atauempatkarakter ASCII, masing-masingmemiliki 8 bit.

  39. MEMORY ADDRESS • Mengaksesmemoriuntukmenyimpanataumengambilsuatu item informasi, baikberupa word atau byte, memerlukannama yang berbedaataualamatuntuktiaplokasi item. • Merupakanhal yang biasamenggunakanbilangan 0 hingga 2k – 1, untukbeberapanilai k yang sesuai, sebagaialamatdarilokasi yang berurutandalammemori. Alamat 2kmeliputiruangalamatkomputertersebut, danmemoritersebutdapatmemilikilokasiaddressable hingga 2k. Misalnya, alamat 24-bit menghasilkanruangalamat 224 (16.777.216) lokasi.

  40. Data Structures • CPU secaralangsungdapatmemanipulasi data integer, real number, karakter, booleandan memory addres. Jenis data yang secaralangsungdidukungoleh CPU disebutjenis data primitif, ataujenis data mesin. • Struktur data termasukkelompokelemen data primitif yang diorganisiruntukbeberapabentukpengolahanumum. Struktur data digambarkandandimanipulasidalamperangkatlunak. • Perangkatkeraskomputertidakbisamemanipulasistruktur data secaralangsung, tetapiharusmemperlakukannyaberkaitandengankomponenprimitifsepertibilangan integer, bilangan floating point, karaktertunggal, danseterusnya. • Perangkatlunakharusmenterjemahkanoperasistruktur data kedalamseperangkatinstruksimesin yang beroperasipadaelemen data primitifindividu. 

  41. Data Structures • Kompleksitasstruktur data terbataspadaketerampilandanimajinasipara programmer. • Perangkatlunaksistemseringmenyediakanjasaaplikasiuntukmanipulasistruktur data. Sebagaicontoh, suatusistemoperasiumumnyamenyediakanjasauntukmembacadanmenuliskedandari file. • Struktur data lain lebihsedikitdidukungolehperangkatlunaksistem. Contohnyameliputi array numerik, file indeks, danstruktur database kompleks. • File indeksdidukungolehbeberapa, tetapitidaksemuasistemoperasi.

  42. Data Structures • Array numerikumumnyamendukungbahasapemrogramantetapibukandidalamsistemoperasi. • Struktur database secaranormal didukungolehsuatu database manajemensistem. • Kebanyakanbahasa program mendukungmanipulasilangsungdarikarakter string. • Struktur data mempunyaiperanpentingdalampengembangansistem software. Sebagaicontoh, linked list biasanyadigunakanolehsistemoperasiuntukmenjejakiblokmemori yang dialokasikanke program danblok disk yang dialokasikanke file dandirektori. • Indeksdigunakandalam database manajemensistemuntukmempercepatpencariandanmemanggilkembalioperasi.

  43. Tugas I • Tuliskannilaisetiapelemendarivariabel array a dibawahini: • Int a[3][3] = {{1,8},{2,4,6},{5}} • Buatlahsebuahfungsirekursifuntukmendapatkanbilanganterkecildari n buahbilanganbulat yang tersimpandalamsebuahvarriabel array • Buatlahsebuah array – record untukmenampungsuatu data mahasiswa yang terdiriatas: nim, nama, alamat, danumur. Asumsijumlahmaksimalmahasiswaadalah 50 orang.

  44. Program apakah ini? Outputnya?

More Related