MEMAHAMI ALGORITMA PEMOGRAMAN

23
77 No. 16/IX/TEKNODIK/JUNI/2005 MEMAHAMI ALGORITMA PEMOGRAMAN (Analisis Pembelajaran dalam Implementasi Software) Oleh: Yuni Sugiarti * Abstrak Kenyataan menunjukan bahwa pembelajaran pemograman komputer masih banyak yang mengalami kesulitan baik secara teori ataupun praktek. Akibatnya kurang mengahayati atau memahami konsep-konsep pemograman dan kesulitan mengaplikasikan pemograman komputer untuk aplikasi bisnis, pendidikan, game, dll. Salah satu cara pembelajaran pemograman komputer adalah dituntut untuk membiasakan menggunakan algoritma. Algoritma yaitu urutan langkah atau tahapan-tahapan berhingga untuk memecahkan masalah logika/matematika, dimulai dengan mendefinisikan masalah, menentukan solusi, memilih algoritma, menulis program, menguji program, menulis dokumentasi sampai merawat program atau maintenance. Tulisan ini menganalisis secara teoritis pembelajaran pemograman komputer menggunakan algoritma, serta implementasinya dalam kasus konversi software engeenering dikonversi ke sistem data base. Kata kunci: pembelajaran, pemograman, algoritma pemograman *) Yuni Sugiarti, ST. adalah dosen Teknik Informatika beberapa PT di Bandung. Yuni Sugiarti: Algoritma Pemrograman

Transcript of MEMAHAMI ALGORITMA PEMOGRAMAN

Page 1: MEMAHAMI ALGORITMA PEMOGRAMAN

77No. 16/IX/TEKNODIK/JUNI/2005

MEMAHAMIALGORITMA PEMOGRAMAN

(Analisis Pembelajaran dalamImplementasi Software)

Oleh: Yuni Sugiarti *

Abstrak

Kenyataan menunjukan bahwa pembelajaran pemogramankomputer masih banyak yang mengalami kesulitan baik secarateori ataupun praktek. Akibatnya kurang mengahayati ataumemahami konsep-konsep pemograman dan kesulitanmengaplikasikan pemograman komputer untuk aplikasi bisnis,pendidikan, game, dll. Salah satu cara pembelajaranpemograman komputer adalah dituntut untuk membiasakanmenggunakan algoritma. Algoritma yaitu urutan langkah atautahapan-tahapan berhingga untuk memecahkan masalahlogika/matematika, dimulai dengan mendefinisikan masalah,menentukan solusi, memilih algoritma, menulis program,menguji program, menulis dokumentasi sampai merawatprogram atau maintenance. Tulisan ini menganalisis secarateoritis pembelajaran pemograman komputer menggunakanalgoritma, serta implementasinya dalam kasus konversisoftware engeenering dikonversi ke sistem data base.

Kata kunci:pembelajaran, pemograman, algoritma pemograman

*) Yuni Sugiarti, ST. adalah dosen Teknik Informatikabeberapa PT di Bandung.

Yuni Sugiarti: Algoritma Pemrograman

Page 2: MEMAHAMI ALGORITMA PEMOGRAMAN

78 Website: http://www.pustekkom.go.id

A. PENDAHULUANDewasa ini, komputer digunakan di hampir semua bidang kehidupanmanusia, mulai dari pendidikan, bisnis, kesehatan, permainan danlain-lain. Khususnya dalam bidang pendidikan, komputer dipakaiuntuk pembelajaran sekolah mulai TK, SD, SMP, SMU, hingga PT.Komputer (software) juga sebagai alat bantu dalam pengelolaanpendidikan misalnya sistem akademik baik untuk administrasi,keuangan, kepegawaian, perwalian, nilai, dan banyak produk-produkperangkat lunak lainnya.

Berbicara tentang komputer terutama software tidak lepas daripemograman komputer. Hal ini karena komputer pada dasarnyaadalah mesin yang tidak bisa apa-apa. Kita harus memberikanserangkaian instruksi kepada komputer agar mesin ‘pintar’ ini dapatmemecahkan suatu masalah. Langkah-langkah yang kita lakukandalam memberikan instruksi kepada komputer untuk memecahkanmasalah inilah yang dinamakan algoritma pemograman komputer.

Dalam kehidupan sehari-hari, untuk berkomunikasi dengan oranglain, kita harus menggunakan bahasa yang sama dengan orangtersebut. Apabila kita menggunakan Bahasa Inggris, lawan bicarakita juga harus mengerti Bahasa Inggris. Kalau lawan bicara kitatidak mengerti Bahasa Inggris, kita masih bisa berkomunikasidengannya melalui seorang penerjemah.

Dalam pemograman komputer, berlaku juga hal seperti di atas,menggunakan bahasa yang dimengerti oleh komputer untukmemberikan suatu instruksi. Pada dasarnya, komputer adalah mesindigital, artinya komputer hanya mengenal kondisi ada arus listrik(biasanya dilambangkan dengan 1) dan tidak ada arus listrik(biasanya dilambangkan dengan 0). Dengan kata lain harusmenggunakan kata sandi 0 dan 1 untuk melakukan pemogramankomputer. Bahasa pemograman yang menggunakan sandi 0 dan1 ini disebut bahasa mesin. Mungkin kita sudah bisa membayangkanbagaimana sulitnya memprogram dengan bahasa mesin. Namuntidak perlu kuatir karena dewasa ini jarang sekali orang yang

Yuni Sugiarti: Algoritma Pemrograman

Page 3: MEMAHAMI ALGORITMA PEMOGRAMAN

79No. 16/IX/TEKNODIK/JUNI/2005

memprogram dengan bahasa mesin.

Karena bahasa mesin sangat susah, maka muncul ide untukmelambangkan untaian sandi 0 dan 1 dengan singkatan kata yanglebih mudah dipahami manusia yang disebut mnemonic code.Bahasa pemograman yang menggunakan singkatan kata ini disebutbahasa assembly.

Sebagai contoh, dalam prosesor intel, terdapat perintah 0011 10100000 1011. Perintah dalam bahasa mesin ini sama artinya denganperintah assembly CMP AL, 0D, yang artinya bandingkan nilairegister AL dengan 0D. CMP di sini sebenarnya adalah singkatandari CoMPare. Dapat kita lihat disini bahwa perintah CMP AL, 0Djauh lebih mudah dipahami daripada 0011 1010 0000 1011. Jikadilihat dari sudut pikiran manusia, bagi komputer, kombinasi 0 dan 1tentu lebih mudah dipahami. Perangkat lunak yang mengkonversikanperintah-perintah assembly ke dalam bahasa mesin sering disebutjuga assembler.

Berikutnya assembly digantikan bahasa pemograman generasiketiga atau 3GL (Third Generation Language) atau disebut bahasatingkat tinggi (HLL = High Level language). Contohnya : Basic, Pascal,C, C++, COBOL dan sebagainya.

Bahasa pemograman generasi berikutnya adalah generasi ke 4atau 4GL (fourth-generation language). Bahasa ini banyak digunakanuntuk mengembangkan aplikasi basis data (data base). Salah satucontohnya adalah SQL (Structure Query Language). Pada bahasaini perintah-perintah yang digunakan lebih manusiawi, misalnya“SELECT Nama, Alamat FROM Karyawan”, untuk mengambil Namadan Alamat dari basis data karyawan.

Tulisan ini sesuai dengan uraian di atas, mengkaji secara teoritispembelajaran Algoritma Pemograman (AP) dan pengimplementasianpembelajaran AP dalam kasus konversi matakuliah software

Yuni Sugiarti: Algoritma Pemrograman

Page 4: MEMAHAMI ALGORITMA PEMOGRAMAN

80 Website: http://www.pustekkom.go.id

engeenering dikonversi ke mata kuliah data base.

B. Hakikat Algoritma PemogramanAlgoritma Pemograman adalah urutan langkah-langkah berhinggauntuk memecahkan masalah secara logika atau matematika.Dalam pemograman komputer beberapa langkah yang perludilakukan, sebagai berikut:1. Mendefinisikan masalah

Langkah pertama ini sering dilupakan oleh banyak pemogram.Begitu mereka mendapat perintah untuk membuat suatuprogram, mereka langsung menulis programnya tanpamendefinisikan masalahnya terlebih dulu. Dalam buku hukumMurphy untuk pemograman karangan Henry Ledgarddikatakan “semakin cepat kita menulis program akan semakinlama kita untuk menyelesaikannya”, setelah dibuktikan bersamaternyata kata-kata tersebut memang benar. Mendefinisikanmasalah sangat penting tetapi sering dilupakan. Tentukanmasalahnya seperti apa, kemudian apa yang harus dipecahkandengan komputer, yang terakhir apa masukannya dan apakeluarannya.

2. Menentukan soalSetelah masalah sudah didefinisikan dengan jelas, masukanapa yang diberikan dengan jelas, keluaran apa yang diinginkansudah jelas, langkah selanjutnya adalah mencari jalanbagaimana masalah tersebut diselesaikan. Apabilapermasalahan terlalu kompleks, biasanya kita harusmembaginya ke dalam beberapa modul kecil agar lebih mudahdiselesaikan.

3. Memilih algoritmaLangkah ini merupakan salah satu langkah penting dalampemograman komputer, karena pemilihan algoritma yang salahakan menyebabkan program memiliki unjuk kerja yang kurang

Yuni Sugiarti: Algoritma Pemrograman

Page 5: MEMAHAMI ALGORITMA PEMOGRAMAN

81No. 16/IX/TEKNODIK/JUNI/2005

baik.

4. Menulis ProgramAda beberapa hal yang harus dipertimbangkan saat memilihbahasa pemograman, antara lain masalah yang dihadapi,bahasa pemograman yang kita kuasai dan sebagainya.

5. Menguji ProgramSetelah program selesai ditulis, kita harus mengujinya.Pengujian pertama adalah apakah program berhasil dikompilasi dengan baik. Pengujian berikutnya apakah programdapat menampilkan keluaran yang diinginkan.

6. Menulis DokumentasiHal ini biasanya dilakukan, bersamaan menulis program, artinyapada setiap baris program atau setiap beberapa baris program,kita menambahkan komentar yang menjelaskan kegunaan darisuatu pernyataan. Dokumentasi ini kelihatannya sepele danbanyak dilupakan orang, padahal fungsinya penting sekali.Dimasa mendatang, apabila kita perlu melakukan perubahanatau perbaikan terhadap suatu program, kita akan merasakanpentingnya dokumentasi yang baik. Dokumentasi yangdijadikan satu dalam program, berupa komentar-komentarpendek, biasanya sudah cukup.

7. Merawat ProgramLangkah ini dilakukan setelah program selesai dibuat dansudah digunakan oleh pengguna kita. Hal yang sering terjadidisini munculnya bug yang sebelumya tidak terdeteksi. Ataujuga pengguna ingin tambahan suatu fasilitas baru. Apabila hal-hal seperti ini terjadi berarti program harus direvisi ulang.

Dalam kehidupan sehari-hari, sebenarnya kita sering menggunakanalgoritma untuk melakukan sesuatu. Sebagai contoh ketika menulissurat kita perlu melakukan beberapa langkah sebagai berikut:

Yuni Sugiarti: Algoritma Pemrograman

Page 6: MEMAHAMI ALGORITMA PEMOGRAMAN

82 Website: http://www.pustekkom.go.id

mempersiapkan kertas dan amplop, mempersiapkan alat tulisseperti pena atau pensil, mulai menulis, memasukkan kertas kedalam amplop, pergi ke kantor pos untuk mengeposkan surattersebut. Langkah-langkah itulah yang di sebut dengan algoritma.Jadi sebenarnya kita sendiri juga sudah menggunakan algoritmabaik sadar maupun tidak sadar.

Dalam banyak kasus, algoritma yang dilakukan tidak selaluberurutan seperti di atas, kadang-kadang harus memilih dua ataubeberapa pilihan. Misalnya kita ingin makan, kita harus menentukanakan makan dirumah makan atau masak sendiri. Jika memilih untukmakan di rumah makan, kita akan menjalankan algoritma yangberbeda dengan yang memilih masak sendiri. Dalam duniaalgoritma, hal semacam ini sering disebut percabangan.

Dalam kasus lain lagi, kita mungkin harus melakukan langkah-langkah tertentu beberapa kali. Misalnya saat menulis surat,sebelum memasukkan kertas ke dalam amplop, mungkin kita harusmengecek apakah surat itu sudah benar atau belum. Jika belumbenar, berarti harus mempersiapkan kertas baru dan menulis lagi.Demikian seterusnya sampai surat kita sesuai dengan yangdiharapkan. Dalam dunia pemograman, hal semacam ini seringdisebut pengulangan.

C. IMPLEMENTASI ALGORITMA PEMOGRAMANUntuk memberikan gambaran tentang implementasi algoritmapemograman, berikut ini diberikan contoh kasus algoritmapemograman.

Kasus 01Tulislah program untuk menampilkan jumlah hari, jam, menit, dandetik dari masukan yang berupa lamanya waktu dalam detik.Sebagai contoh, masukan 100.000 detik akan menghasilkankeluaran : 1 hari, 3 jam 46 menit dan 40 detik. Masukan dari programini adalah bilangan bulat bertipe longint yang melambangkan waktu

Yuni Sugiarti: Algoritma Pemrograman

Page 7: MEMAHAMI ALGORITMA PEMOGRAMAN

83No. 16/IX/TEKNODIK/JUNI/2005

dalam detik. Keluaran dari program ini adalah banyaknya hari, jam,menit, dan detik dari waktu tersebut.

PEMBAHASAN Kasus 01Untuk menentukan algoritma perhitungan hari, jam, menit, dandetik, kita mulai dengan contoh sederhana. Misalkan masukan yangdiberikan pengguna adalah 100.000 detik. Langkah-langkahpenghitungan tersebut dapat dituliskan sebagai berikut :1. Banyaknya hari = 100.000 / (60 * 60 * 24) = 100.000 / 86.400

= 1 hari.2. Banyaknya jam = (100.000 – 1 * 86.400) / (60 * 60)

= 13.600 / 3.600 = 3 jam.3. Banyaknya menit = ( 13.600 – 3 * 3.600 ) / 60 = 2.800 / 60

= 46 menit.4. Banyaknya detik = (2.800 – 46 * 60) = 2.800 – 2.760 = 40 detik.

Berdasarkan contoh di atas, dapat dituliskan algoritma pencarianhari, jam menit dan detik adalah sebagai berikut :1. Masukkan detik.2. hr detik / 86400.3. detik detik - hr * 86400.4. jm detik / 3600.5. detik detik – jm * 3600.6. mn detik / 60.7. detik detik – mn * 60.8. dt detik.9. Tulis hr, jm, mn, dt.

Implementasi dalam bahasa pascalConst

SatuHari = 60 * 60 * 24;Var

detik: longint;Hr, jm, mn, dt : integer;

Begin

Yuni Sugiarti: Algoritma Pemrograman

Page 8: MEMAHAMI ALGORITMA PEMOGRAMAN

84 Website: http://www.pustekkom.go.id

Write(‘ Masukkan waktu (detik) : ‘);Readln (detik);Writeln (detik, ‘detik terdiri dari : ‘)’

Hr := detik div SatuHari;detik := detik - hr * SatuHari;

Jm := detik div 3600;detik:= detik – jm * 3600;

Mn := detik div 60;dt := detik - mn * 60;

Writeln(hr, ‘hari’)’;Writeln(jm, ‘jam’)’;Writeln(mn, menit’)’;Writeln(dt, ‘detik’)’;

End.

Hasil Keluaran program diatas adalah sebagai berikut :

Masukkan waktu (detik) : 100000100000 detik terdiri dari :1 hari3 jam46 menit40 detik

Masukkan waktu (detik) : 36003600 detik terdiri dari :0 hari1 jam0 menit0 detik

Yuni Sugiarti: Algoritma Pemrograman

Page 9: MEMAHAMI ALGORITMA PEMOGRAMAN

85No. 16/IX/TEKNODIK/JUNI/2005

Kasus 02Tulislah program untuk konversi metodologi Objek OMT (ObjectModelling Technique) ke SQL

PEMBAHASAN Kasus 02Model ObjekMetodologi berorientasi objek merupakan suatu strategipembangunan perangkat lunak yang mengorganisasikan perangkatlunak sebagai kumpulan objek-objek yang berisi data dan aksi yangdilakukan terhadapnya. Salah satu metodologi ini adalahmetodologi objek OMT (Object Modelling Technique). Tujuannyaadalah untuk mengidentifikasi secara jelas aspek-aspek metodologidan penerapannya terhadap metodologi yang akan dibangun.Komponen objek adalah : Objek, Kelas, Diagram-objek, atribut,Operasi dan metoda, Link dan Asosiasi, Qualifikasi, Agregasi,Generalisasi dan Pewarisan dan Metadata.

Model RelasionalModel ini bertujuan untuk menghasilkan sekumpulan skema relasidalam bentuk yang tepat (normal), menghindari redudansi danmengakses informasi dengan mudah.

Elemen dasar dari model relasional adalah relasi yaitu instans dariskema relasi yang berbentuk table dan terdiri atas baris dan kolom.Baris dari relasi disebut tuple, adalah kumpulan dari nilai yangdimiliki tiap atribut. Degree dari suatu relasi adalah jumlah kolomdari relasi, sedangkan kardinalitas adalah jumlah baris dari relasi.Skema model relasional adalah kumpulan skema relasi, skemarelasi adalah gabungan atribut-atribut. Himpunan dari semua nilaiyang mungkin dari atribut tertentu disebut domain atribut tertentu.Komponen model relasional adalah ketergantungan fungsional,relationship, key, normalisasi.

Yuni Sugiarti: Algoritma Pemrograman

Page 10: MEMAHAMI ALGORITMA PEMOGRAMAN

86 Website: http://www.pustekkom.go.id

USER

OMTool

GraficalModel

LogicalModel

SchemerObject Metamodel

Ideal Table Metamodel

Data DictionaryEntries

RDBMS

SQL Create Table

ScriptRDBMS

SchemerData Dictionary

Aplication

ApplicationDatabase

Create

Populate

1. Aturan konversi OMT ke Model RelasionalSuatu percobaan arsitektur yang dilakukan James Rumbaughpada GE Corporate R & D, dan Schemer, yaitu batch compileryang dikembangkan untuk membangkitkan kode SQL denganmengotomatisasikan aturan-aturan pemetaan melalui suatumodel kompilator. Dalam gambar 1 menunjukkan arsitekturuntuk mengoptimasikan konversi model objek ke modelrelasional. Arsitektur memiliki tiga bagian utama : OMTool,Schemer dan RDBMS itu sendiri. Schemer adalah kumpulanaturan-aturan pemetaan objek dan metamodel table-tabelsecara formal dan notasi pemetaan pemodelan ke skema basisdata.

Gambar 1. Konversi model OMT ke model relasional

a. OMToolOMTool menyimpan dua bilangan terhadap model objekdalam notasi pemodelan OMT. Model grafik,menggambarkan bentuk kotak, garis, dan teks ke layar.Model Grafik digunakan untuk menambah antar mukadengan pemakai dan menyajikan model objek secara visualuntuk dokumentasi. Model lojik merupakan ringkasantentang pengertian yang mendasar pada gambar danmenjelaskan kelas-kelas serta keterhubungannya antara

Yuni Sugiarti: Algoritma Pemrograman

Page 11: MEMAHAMI ALGORITMA PEMOGRAMAN

87No. 16/IX/TEKNODIK/JUNI/2005

yang satu dengan lainnya.

OMTool memiliki beberapa keistimewaan untuk membuatpembangkit model yang termudah. OMTool memungkinkanpemakai untuk membuat, memuat, mengubah, menyimpandan mencetak diagram secara otomatis. OMTool mengelolaketerhubungan lojik seperti pemakai memindahkan entitasyang terhubung.

Antarmuka disajikan dalam bentuk jendela-jendelamelayang. Untuk melakukan pertanyaan secara detail tidakditunjukkan pada diagram seperti lingkup atribut, pengijinannilai kosong untuk setiap atribut dan kunci-kunci primer.Juga jendela untuk menentukan aturan pemetaan yangakan diaplikasikan pada semua kelas dan relasionshipdalam model, yang mana secara mendasar menyediakanstrategi global untuk implementasi basis data. Pemakaidapat mengesampingkan aturan-aturan pemakai globaluntuk kelas-kelas khusus atau relasionship pada hasilefisiensi, jangkauan perluasan dan integritas dalam koderelasional.

Ketika pemakai membuat keputusan implementasi, OMToolmenulisnya dan model lojik pada suatu file ASCII sebagaimasukan untuk kompilator skema basisdata (dalam kasusini shemer).

b. SchemerSchemer mengkonversikan bentuk teks menjadi perintah-perintah SQL yang diperlukan untuk menciptakan table-tabel relasi, index, domain, hak akses dan bagian-bagianlain pada skema. Selama proses ini, Schemermengeluarkan suatu pesan kesalahan seperti nama terlalupanjang atau informasi yang hilang. Schemer jugamemeriksa batasan-batasan yang digunakan untukpewarisan gkita, identitas yang diturunkan dan tipe data

Yuni Sugiarti: Algoritma Pemrograman

Page 12: MEMAHAMI ALGORITMA PEMOGRAMAN

88 Website: http://www.pustekkom.go.id

Memetakanbentuk teks

menjadiskema

basis data

Memetakan skema

kesturktur file

Pengkonversianstruktur file

kesintak SQL

USER RELASIONAL

Skema Strukturfile

SQL

- objek teks- Aturan FD - data skema - data skema

- sintak SQL- tabel

SISTEM KONVERSI OBJEK OMTKE RELASIONAL

1. Pemetaan bentuk teksmenjadi skema basis data

2. Pemetaan skemake struktur file

3. Pengkonversian struktur fileke sintak SQL

1.1 Pembentukan skema

1.2 Normalisasi2.2 Pembentukan

struktur file

2.1 PendefinisianSpesifikasi tipe data

3.2 Pendefinisian aturan

3.1 Pembentukan SQL

3.3 Pembentukan tabel

yang dihasilkan serta memperingatkan jika dipilih aturanpemetaan yang tidak konsisten.

2. Proses KonversiSchemer mengkonversikan model objek menjadi table-tabelrelasi dalam tiga tahap, untuk lebih jelasnya dapat dilihat padastruktur proses dan diagram aliran data.

Gambar 2. Struktur Proses

Yuni Sugiarti: Algoritma Pemrograman

Page 13: MEMAHAMI ALGORITMA PEMOGRAMAN

89No. 16/IX/TEKNODIK/JUNI/2005

Gambar 3. Diagram Aliran Data

3. MetamodelMetamodel dalam schemer menjelaskan struktur diagramsecara jelas dan ringkas, termasuk semua keistimewaan padanotasi OMT. Metamodel juga mempermudah implementasipada aturan-aturan untuk membangkitkan skema basisdata.Akhirnya, metamodel menyediakan kamus data umum untubanyak relasi, menyediakan informasi tentang model, dimanaskema akan dipetakan. Informasi ini dibuat sebagai suatuperluasan pada kamus data yang secara umum disediakanoleh suatu relasi. Dengan informasi tambahan, pemakaimemilih kamus data umum yang dapat digunakan oleh relasi.

Metamodel table ideal menjelaskan semua kemungkinan table-tabel basisdata dan memungkinkan pemakai untuk merubah/mangatur table-tabel untuk relasi tertentu.a. Bekerja dengan Metamodel

Objek dan metamodel table ideal adalah dinamai karenaitu adalah model objek dari model. Metamodel objekdigunakan notasi OMT untuk menjelaskan aspek lojik daridiagram objek yang digunakan shemer. Metamodel tableideal menggunakan notasi OMT untuk menjelaskan aspeklojik dari table-tabel ideal, yang mana schemermenggunakannya untuk menjelaskan table-tabel relasional.

Metamodel memiliki keterkaitan silang yang memungkinkanuntuk mengendalikan antara pembuatan berorientasi objekdan berorientasi table. Ini dapat membantu untukpengembangan aplikasi yang harus menggali secarasemantic berorientasi objek dari aplikasi bukan menyimpandata dalam table-tabel relasional. Keterhubungan silang

Yuni Sugiarti: Algoritma Pemrograman

Page 14: MEMAHAMI ALGORITMA PEMOGRAMAN

90 Website: http://www.pustekkom.go.id

Enum Value

-enum number-enum value

Domain

-domain name-emitted string

Module

-name-mapping strategies

Attribute

-attributr name-attr null-allowed

Generalization

- in concrete-is overlapping

- mapping strategies

Instanceattribute

Abstraction

-name- mapping strategies

DiscriminatorQualifier Candidate Key

Role

-name-multiplicity

N-aryassociation

Object class

Nonaggregastionassociation

Agregation

Assoc roleAssembly

rolePart Role

juga mengenalkan kemampuan untuk menelusuri antarakebutuhan dan kode yang dikirimkan.

Gambar 4. Metamodel

Gambar 4 merupakan rangkuman dari metamodel, yangbelum lengkap. Metamodel mengenali pemodelan utamadari kelas, asosiasi, dan generalisasi, yang mendasarikonsep selanjutnya tentang notasi OMT itu sendiri.

Enum Value adalah suatu nilai enumerasi termasuk domainenumerasi. Contohnya: warna, mungkin mempunyai nilaimerah, biru dan hijau. Tidak semua domain adalahenumerasi, seperti dollar, yang mana tidak memiliki nilaitersendiri. OMTool menyediakan fasilitas untukmendefinisikan enumerasi dalam suatu model.

Domain adalah tipe data basisdata. Masing-masing atributharus diberikan domain baik secara eksplisit ataupunsecara implisit. Domain memiliki nama, contohnya jalan,

Yuni Sugiarti: Algoritma Pemrograman

Page 15: MEMAHAMI ALGORITMA PEMOGRAMAN

91No. 16/IX/TEKNODIK/JUNI/2005

mungkin didefinisikan bernilai char 30). OMToolmenyediakan fasilitas untuk mendefinisikan domain dalammodel. Sedangkan Atribut adalah nilai relasi yang terletakdibagian kepala atau sebagai kolom-kolom relasi. Qualifierberfungsi membedakan antara sekumpulan objek padaakhir sebuah asosiasi.

Instance attribute, dinamakan karakteristik dari suatuabstraksi yang menjelaskan nilai data yang dihasilkan olehmasing-masing contoh abstraksi. Suatu atribut contoh padaasosiasi adalah atribut yang terkait. Descriminator, suatuatribut dari jenis enumerasi menyatakan karakteristik darikelas yang dialamatkan oleh generalisasi tertentu.

Module adalah bagian dari sistem yang berisi sejumlahkelas dan relasionshipnya. Masing-masing modul inimempunyai nama dan strategi pemetaan, yangmenentukan tetapan aturan pemetaan yang akandigunakan oleh modul. Secara umum kelas-kelas yangsama mempunyai keterhubungan yang kuat denganasosiasi dan generalisasi daripada kelas-kelas dalam modulyang berbeda.

Generalization, relastonship antara suatu kelas atau lebih.Masing-masing generalisasi memiliki satu kelas superkelasdan satu atau lebih kelas-kelas sebagai subkelas.Candidate Key adalah sekumpulan minimal atribut-atributdan aturan yang unik untuk suatu abstraksi. SedangkanRole, aturan-aturan kelas digunakan dalam asosiasi. Roledapat sebagai part role, assembly role dan assocition role.Part role dalam suatu agregasi adalah aturan yangmengijinkan penggabungan. Assembly role dalam agregasiadalah apapun yang dibuat dari yang lain. Notasidilambangkan dengan bentuk diamond. Association rolemenjelaskan keterlibatan dari suatu kelas dalam asosiasiyang khusus.

Yuni Sugiarti: Algoritma Pemrograman

Page 16: MEMAHAMI ALGORITMA PEMOGRAMAN

92 Website: http://www.pustekkom.go.id

Airlane

- name

Aircrew

- name- social security number

- type

Flight

- flight number- date

Pilot

- flight rating

Flight Attendant

- experience

Abstraction, salah satu dari asosiasi n-ary atau kelas.Merupakan mekanisme yang memungkinkan untukmerepresentasikan dunia nyata yang kompleks menjadisatu bentuk model yang sederhana.

N-ary Assocition, keterhubungan antara dua kelas ataulebih. Schemer mendukung asosiasi binary & ternary.Asosiasi N-ary dapat memiliki atribut-atribut melaluisuperkelas abstraksi. Object-class, deskripsi dari kelompokyang memiliki property sama, tingkah laku umum,relationship umum dan semantic yang umum.

Nonagregation association, suatu asosiasi yang khusus.Kelas-kelas asosiasi mempunyai nama disebut denganinstance, mungkin mempunyai peran dalam asosiasi, danmemiliki kunci-kunci kandidat. Perbedaannya dengan objekdalam kelas memiliki identitas yang sebenarnya, identitasdari keterkaitannya dalam suatu asosiasi diturunkan dariabstraksi yang dihubungkan. Generalisasi dan asosiasiadalah relasi dasar dalam metamodel, yang melibatkan duaatau lebih kelas-kelas objek. Perbedaannya adalah bahwaasosiasi menjelaskan pola antara dua atau lebih instans,sedangkan generalisasi mengorganisasikan struktur kelasuntuk menjelaskan instans tunggal.

4. Contoh Konversi Model Objek menjadi Tabel Relasional

Yuni Sugiarti: Algoritma Pemrograman

Page 17: MEMAHAMI ALGORITMA PEMOGRAMAN

93No. 16/IX/TEKNODIK/JUNI/2005

Gambar 5. Contoh kasus konversi

a. Batasan, Deskripsi dengan Algoritma1) Class dan object description

Class AirlineAttribute name:stringAttribute AssFlight : FlightAttribute AssAircrew :AircrewOperation Set_name(Pname:string)Operation Set_AssFlight(Pflight number,PDate)Operation Set_AssAircrew(PName,PSocial securitynumber)

End;Class Aircrew

Attribute name:stringAttribute Social Security Number : integerAttribute AssAirline : AirlineOperation Set-Name-Social Security Number(Pname,Psocial Security Number)Operation Set-assAirline(Pname)

End;

Class Pilot is a AircrewAttribute Flight rating : numberAttribute Ass_Copilot : CopilotAttribute Ass_Flight : FlightOperation Set_Flight rating(Pflight rating:number)Operation Set_AssCopilot(Flight rating)Operation Set_AssFlight(Pflight number,PDate)

End;

Yuni Sugiarti: Algoritma Pemrograman

Page 18: MEMAHAMI ALGORITMA PEMOGRAMAN

94 Website: http://www.pustekkom.go.id

Class Flight Attendant is a AircrewAttribute Experience :integerAttribute Ass_Flight : FlightOperation Set_Experience(PExperience:integer)Operation Set_AssFlight(Pflight number,PDate)

End;

Class FlightAttribute flight Number:integerAttribute Date:DateAttribute AssAirline : AirlineAttribute AssPilot:PilotAttribute AssCopilot:PilotAttribute AssFlight Attendant:Flight AttendantOperation Set- flight Number,Date (PflightNumber,PDate)Operation Set-AssAirline(Pname)Operation Set-AssPilot(PFlight rating)Operation Set-AssCopilot(Pflight rating)Operation Set-AssFlight Attendatt(PExperience)

End;

2) Pembentukan skema berdasarkan gambar D.1.6 diperolehdeskripsi relasi sebagai berikut :1. Airline(Airline_Id,Name,Aircrew_Id,Flight_Id)2. Aircrew(Aircrew_Id, Name,SSN,Airline_Id)3. Pilot(Pilot_Id, Flight rating, Aircrew_Id)4. Flight Attendan

(FlightAtt_Id,Experience,Aircrew_Id,Flight-Id)5. F l i g h t ( F l i g h t _ I d , F l i g h t

number,Date,Airline_Id,Pilot_Id,Copilot_Id,Flight Att-Id)

3) NormalisasiAirline (bentuk normal)

Yuni Sugiarti: Algoritma Pemrograman

Page 19: MEMAHAMI ALGORITMA PEMOGRAMAN

95No. 16/IX/TEKNODIK/JUNI/2005

Airline_Id, Name Aircrew_Id Flight_id

Aircrew (bentuk normal)

Aircrew_Id Name SSN Airline_id

Pilot (bentuk normal)

Pilot_Id, Name Flight rating Aircrew_Id

Flight Att (bentuk tidak normal)

Flight Att_Id Experience Aircrew_Id Flight_id

Flight Att (bentuk normal)

Flight Att_Id Experience Aircrew_Id

Flight (bentuk tidak normal)

Flight_Id Flight Date Airline_Id Pilot_Id Copilot_Id Flight number Att_Id

Flight (bentuk normal)

Yuni Sugiarti: Algoritma Pemrograman

Page 20: MEMAHAMI ALGORITMA PEMOGRAMAN

96 Website: http://www.pustekkom.go.id

Flight_Id Flight number Date Airline_Id Pilot_IdCopilot_Id

FF (bentuk normal)

Flight Att_Id Flight_Id

4) Pembentukan SQLa) Create Table Airline

((Airline_Id Varchar[5] Notnull Default,Name Varchar[30] Notnull Default ‘noname’,Aircrew_Id Varchar[11] Notnull Default,Flight_Id integer Notnull Default 0Primary key (Airline_Id)Foreign key (Aircrew_Id)Foreign key (Flight_Id)Reference Aircrew_Id to Aircrew (Aircrew_Id)Reference Flight_Id to Flight (Flight_Id))

b) Create Table Aircrew((Aircrew_Id Varchar[11] Notnull Default,Name Varchar[30] Notnull Default ‘noname’,SSN Varchar[7] Notnull Default,Airline_Id Varchar[5] Notnull,Primary key (Aircrew_Id)Foreign key (Airline_Id)Reference Airline_Id to Airline (Airline_Id)

)

c) Create Table Pilot((Pilot_Id Varchar[4] Notnull Default,Flight rating integer Notnull Default 0,Aircrew_Id Varchar[11] Notnull,Primary key (Pilot_Id)

Yuni Sugiarti: Algoritma Pemrograman

Page 21: MEMAHAMI ALGORITMA PEMOGRAMAN

97No. 16/IX/TEKNODIK/JUNI/2005

Foreign key (Aircrew_Id)Reference Aircrew_Id to Aircrew (Aircrew_Id))

d) Create Table Flight Att((Flight Att_Id integer Notnull Default 0,Experience integer Notnull Default 0,Date Date Notnull,Pilot_Id Varchar[4] Notnull,Copilot_Id Varchar[4] Notnull,Primary key (Flight Att_Id),Foreign key (Pilot_Id),Foreign key (Copilot_Id),Reference Pilot_Id to Pilot (Pilot_Id),Reference Copilot_Id to Pilot (Pilot_Id),)

e) Create Table Flight((Flightt_Id integer Notnull Default 0,Flight number integer Notnull Default 0,Date date notnullPilot_Id Varchar[4] Notnull,Copilot_Id Varchar[4] Notnull,Airline_Id Varchar[5] Notnull,Primary key ( Flight_Id),Foreign key (Airline_Id),Foreign key (Pilot_Id),Foreign key (Copilt_Id),Reference Airline_Id to Airline(Airline_Id),Reference Pilot_Id to Pilot(Pilot_Id),Reference Copilot_Id to Pilot(Copilot_Id))

Yuni Sugiarti: Algoritma Pemrograman

Page 22: MEMAHAMI ALGORITMA PEMOGRAMAN

98 Website: http://www.pustekkom.go.id

D. KESIMPULAN DAN SARANAlgoritma Pemograman merupakan urutan langkah berhinggauntuk memecahkan masalah logika atau matematika, PembelajaranAlgoritma Pemograman (AP) merupakan suatu hal yang pentingdalam pemograman komputer. Karena pembuatan algoritma yangsalah akan menyebabkan program memiliki unjuk kerja yang kurangbaik.

Melalui Pembelajaran Algoritma Pemograman diharapkan dapatmenemukan dan merekonstruksi konsep-konsep logikapemograman atau pengetahuan pemograman formal. Selanjutnya,diberi kesempatan menerapkan konsep-konsep logikapemograman untuk memecahkan masalah-masalah sehari-hariatau masalah dalam bidang lain. Dengan kata lain, pembelajaranalgoritma pemograman berorientasi pada logika pengalamansehari-hari, dan menerapkan algoritma pemograman dalamkehidupan sehari-hari, sehingga mahasiswa belajar denganbermakna.

Pembelajaran algoritma pemograman berpusat pada mahasiswa,sedangkan dosen hanya sebagai fasilitator dan motivator, sehinggamemerlukan paradigma yang berbeda tentang bagaimanamahasiswa belajar, bagaimana dosen mengajar, dan apa yangdipelajari oleh mahasiswa dengan paradigma pembelajaranpemograman selama ini. Karena itu, perubahan persepsi dosententang mengajar perlu dilakukan bila ingin mengimplementasikanpembelajaran algoritma pemograman.

Yuni Sugiarti: Algoritma Pemrograman

Page 23: MEMAHAMI ALGORITMA PEMOGRAMAN

99No. 16/IX/TEKNODIK/JUNI/2005

Sebagai saran dari tulisan ini diharapkan kepada praktisi, pecinta,pengajar/dosen, pakar pemograman diharapkan untuk melakukanpenelitian-penelitian yang berorientasi pada pembelajaran algoritmapemograman, serta mencoba mengimplementasikan pembelajaranalgoritma pemograman secara bertahap, sehingga diperoleh hasilyang optimal.

DAFTAR PUSTAKARumbaugh.(1991). Object Oriented Modelling and Design. Prentice

Hall New Jersey, J.et al.Blaha, Michael. (1994). Converting OO Model into RDBMS Schema.

IEEE Software.Roger S Pressman, Ph D (1992). Software Engineering. A Practitioner’s

Approach, Mc Graw-Hill Singapore.Derek Coleman. (1994). Object Oriented Development The Fusion

Method. Prentice Hall International Editions.http://www.eg3.com/object.htmlhttp://cuiwww.unige.ch/OSG/OOinfo/index.htmlhttp:/www.soft-design.com/softinfo/objects.htmlAdison Wesley C.J.Date. (1996). Relational Database Selected Writing.

Mc Graw Hill.Henry F Kort & Abraham S. (1996). Database Sistem Consepts. Mc

Graw Hill.Gio Wiederhold (1993). Database Design.Mc Graw Hill.

------

Yuni Sugiarti: Algoritma Pemrograman