KUG1C3 Dasar Algoritma & Pemrograman Pertemuan 2 Tipe Dasar dan Komposisi kholid
Homework Ada sekantong gula-gula hendak dibagikan merata ke empat orang anak. Tiap anak harus mendapat jumlah yang sama, jika sisanya tidak cukup untuk dibagikan pada empat anak tsb maka tidak perlu dibagikan. Tuliskan algoritmanya
TYPE Definisi: Pola representasi suatu data dalam komputer Kegunaan: Mendefinisikan objek yang akan diprogram
Mendefinisikan type berarti Type tidak menentukan alokasi memori di komputer, tetapi hanya mendefinisikan pola struktur informasi.
Macam-macam TYPE: tipe dasar Type dasar diasumsikan ada dan siap dipakai Type dasar yg tersedia dlm suatu bahasa adalah type yg sdh didefnsikan oleh pemroses bahasa. Karena sudah didefinisikan maka pemrogram dpt memakai nama type dan semua operator yg tersedia, dan mentaati semua domain nilai yang disimpan dlm type tsb Type dasar yang dianggap biasanya tersedia dlm bahasa tingkat tinggi (& mrpkn type dasar dlm notasi algortmk) adalah type-type dasar sbb: Bilangan logika Bilangan bulat Bilangan riil Karakter Implementasi type tsb dalam berbagai bahasa dapat sedikit berbeda. Type bentukan dibentuk dari type dasar atau dari type bentukan/komposisi yang sudah dibuat
Bilangan logika
Tabel kebenaran operator boolean
Bilangan bulat
Contoh 1 3 + 10 hasil ? 87 – 31 hasil ? 5 * 10 hasil ? 10 div 3 hasil ? 10 mod 3 hasil ? 20 mod 5 hasil ? 3 < 10 hasil ? 87 > 31 hasil ? 5 5 hasil ? 5 < 5 hasil ? 5 = 5 hasil ? 20 5 hasil ? Munir, R., Lidya, L. Algoritma & Pemrograman. Penerbit Informatika. 1997.
Bilangan riil
Contoh 2 6.4 + 5.7 hasil ? 8.0 – 2.8 hasil ? 10 / 3 hasil ? 12.1 5.2 3.333… 4.0 3.6 Munir, R., Lidya, L. Algoritma & Pemrograman. Penerbit Informatika. 1997.
Karakter
Contoh 3 ‘a’ = ‘a’ hasil ? ‘T’ = ‘t’ hasil ? ‘y’ ‘Y’ hasil ? ‘m’ < ‘z’ hasil ? ‘Q’ > ‘Z’ hasil ? T F Munir, R., Lidya, L. Algoritma & Pemrograman. Penerbit Informatika. 1997.
String
Contoh 4 ‘Teknik’ + ‘INFORMATIKA’ = ‘TeknikINFORMATIKA’ ‘XXX’ + ‘ bb’ + ‘YY’ = ? ‘10’ + ‘2’ = ? F T ‘abcd’ = ‘abc’ hasil ? ‘aku’ < ‘AKU’ hasil ?
Type yang definisi domainnya tidak dilakukan menurut suatu aturan (by definition) melainkan dengan melakukan “enumerasi” atau menyebut satu per satu nilai anggotanya
Katakunci Pada type enumerasi dikenal cara akses suatu nilai anggota melalui katakunci Type ini seringkali terdapat pada bahasa tingkat tinggi, gunanya untuk mendefinisikan dengn lebih jelas suatu himpunan nilai yang pasti, misal: type hari : (senin, selasa, rabu, kamis, jumat, sabtu, minggu)
Contoh Type Hari
Type BENTUKAN Suatu TYPE yang dibentuk (dan diberi nama) dari beberapa komponen bertype tertentu, jadi merupakan kumpulan elemen bertype dasar atau bertype yang sudah dikenal Materi lengkap di IF1281_TYPE.pdf
Notasi Type Bentukan Type nama_type < elemen_1 : type_1, elemen_2 : type_2, elemen_3 : type_3, ……………………> Materi lengkap di IF1281_TYPE.pdf
Contoh 1: Type Point
Deklarasi variabel Deklarasi variable P Perhatikan dalam pengertian sebagai type bentukan, maka ada keseluruhan type yang harus dibentuk menurut pembentuk tertentu yaitu konstruktor, atau adanya komponen type yang harus dapat diacu oleh selektor.
Domain: <real,real> Konstanta: <5.0,6.0> <6.0,100.0> <5.0,6.0> <6.0,100.0> Operator: Operator terhadap point harus dibuat: Operator aritmatika (+,-,dot product, cross product) Operator relasional (EQ, NEQ) Operator lain (IsOrigin, IsOnSbX, dll) Operasi real terhadap P.x dan P.y Operator thd type harus dibuat. Hal ini akan dibahas pada kuliah Algoritma & struktur data karena hakekatnya membentuk type berarti menentukan struktur data.
Contoh 2: Type JAM
Notasi Algoritmik
Deklarasi variabel Deklarasi variable J Cara mengacu elemen J
Domain: < integer, integer, integer > Konstanta: <0,0,0> <15,20,30> Operator: Operator terhadap JAM harus dibuat (konversi jamtodetik, detiktojam, operasi aritmatika, dll) Operasi integer terhadap komponen HH,MM,SS (J1=J2, J1≠J2,J1<J2, dll)
Contoh 3. Sistem Penjadwalan
Notasi algoritmik Notasi Algoritmik
Cara mengacu elemen di JADWAL Deklarasi Variabel Cara mengacu elemen di JADWAL
Domain: sesuai dengan domain masing-masing komponen Konstanta: <7,’RMB’,’CS3024’,’IF2803’> <9,’ADR’,’CS1023’,’TI3003’> Operator: Untuk jadwal, tidak terdefinisi operator Tapi kita dapat mengadakan Operasi integer thd Jadwal_kuliah.J Operasi string thd Jadwal_kuliah.D, dst
Latihan 1 Definisikan tipe bentukan data mahasiswa yang terdiri atas NIM, Nama, dan usia. Misal tipe bentukan dinamakan MHS.
Latihan 2 Bilangan kompleks adalah bilangan yang dinyatakan sebagai a + bi dengan a dan b riil sedangan i=- 1. Contoh: 4.0 + 3.8i. Tuliskan tipe bentukan bilangan kompleks tsb dengan a dan b sebagai field- nya.
Latihan 3 Definisikan tipe bentukan untuk kendaraan bermotor roda empat yang diberi nama KB4 yang terdiri atas: Tahun Merk kendaraan yang terdiri atas ‘toyota’, ‘honda’, ‘hyundai’, ‘suzuki’. Model
Latihan 4 Definisikan tipe bentukan data pegawai yang diberi nama PEG terdiri atas: Nama Jabatan fungsional: (AA, Lektor, Lektor kepala, Guru besar) NIP Tanggal lahir, yang terdiri atas Tanggal Bulan Tahun
Latihan 5 Didefinisikan tipe bentukan yang mewakili tanggal dalam kalender Masehi. Tanggal dinyatakan sebagai tanggal, bulan, dan tahun. Misalkan tipe bentukan diberi nama TGL. Tanggal memiliki domain [1..31] Bulan memiliki domain [1..12] Tahun memiliki domain > 0
Latihan 6 Didefinisikan tipe bentukan jadwal kereta api yang terdiri atas: No KA Kota asal Jam keberangkatan Kota tujuan Jam kedatangan Jam keberangkatan dan kedatangan dinyatakan sebagai waktu yang terdiri atas jam dan menit.
Reference: Liem, Inggriani. Diktat kuliah IF223 Algoritma & Pemrograman. Jurusan Teknik Informatika. ITB. 1999 Munir, R., Lidya, L. Algoritma & Pemrograman. Penerbit Informatika. 1997.