Data Struktur dan Alogaritma
Perangkat lunak dikembangkan sebagai sebuah produk yang memperhatikan efisiensi dan efektifitas, karena perangkat lunak dibutuhkan sebagai salah satu bentuk teknologi yang diharapkan dapat mempermudah kegiatan manusia dengan berbasis otomasi. Algoritma digunakan sebagai sebuah pendekatan untuk dapat menyusun dan mengelola instruksi secara efisien. Stuktur data digunakan untuk mengelola data secara efektif. dibawah ini akan kami jelaskan lebih detail tentang Algoritma dan Struktur data.
1. Pengertian Algoritma
Algoritma adalah urutan langkah untuk menyelesaikan masalah secara sistematis dan logis. Algoritma menawarkan suatu metode dalam menyelesaikan sebuah permasalahan. Algoritma diartikan sebagai urutan langkah dalam menyelesaikan masalah secara sistematis dan logis. Pendekatan secara sistematis dan logis tersebut, menjadikan proses penyelesaian masalah terjaga kebenarannya karena algoritma hendaklah benar agar dapat menghasilkan keluaran/solusi yang benar pula. Penyelesaian masalah (problem solving) adalah kegiatan utama yang dilakukan dalam menyelesaiakan sesuatu. Adapun langkah-langkah Problem Solving adalah sebagai berikut
2. Struktur Data
Struktur data adalah suatu pengelolaan data sehingga data dapat dipergunakan secara lebih efisien dan efektif. Dalam bahasa pemrograman, struktur data seringkali ditampakkan secaa fisik dalam bentuk tabel (biasanya pada bahasa pemrograman/pengelolaan database berbasis visual), namun pada beberapa bahasa pemrograman yang tidak berbasis visual, strutkur data lebih berupa pengelolaan data dengan aturan-aturan tertentu.
Contoh Tipe Data :
1. Tipe data Char dan String
Ini merupakan tipe data dasar, tipe data ini didefinisikan pada deklarsi var dibagian algoritma/program.
Example : Var Nama : String
Nilai : Char
Keterangan :
Nama merupakan sebuah variabel didefinisikan sebagai variabel bertipe string, maksudnya pada variabel tersebut digunakan untuk menerima masukan sebuah nama yang terdiri dari sekumpulan huruf, dapat berupa huruf besar, kecil, atau campuran kedua-duanya.
Nilai, didefinisikan sebagai variabel yang bertipe data char, maksudnya variabel tersebut hanya dapat digunakan untuk memasukkan sebuah huruf dari huruf besar, seperti A, B, C,.. atau huruf kecil, a, b, c, ….
2. Tipe data Boolean
Tipe data ini digunakan untuk pengambilan keputusan dalam operasi logika. Terdiri dari true disimbolkan ‘T’ dan False yang disimbolkan ‘F’. Ketika kita ingin mendapatklan hasil yang valid/pasti, kita menggunakan tipe data boolean untuk memperoleh keputusan dalam suatu penyelesaian yang pasti.
3. Tipe Data Integer
Merupakan tipe data bilangan bulat.
Tipe Data
Rentang nilai
Memori
Byte
0…255
1 byte
Word
0…65.555
1 byte
Integer
-32.768 s.d 32.767
2 byte
Long Integer
-2.147.483.648
4 byte
4. Tipe Data Real
Merupakan tipe data bilangan pecahan seperti real, single, double, comp, extend.
5. Tipe Data Subrange
Merupakan tipe data bilangan yang punya jangkauan nilai tertentu sesuai dengan definisi pada pemrogram.
Example:
Type Variabel=Nilai_awal…Nilai_akhir
6. Tipe Data Enumerasi
Merupakan tipe data yang memiliki elemen-elemen tertentu yang disebut satu/satu dari bernilai konstanta integer sesuai dengan urutannya. Pada tipe data ini elemen masukan diwakili oleh suatu nama variable yang ditlis di dalam kurung.
Example :
Indeks_Hari = (Nol, Minggu, Senin, Selasa, Rabu, Kamis, Jumat, Sabtu)
7. Tipe Data Array (Larik)
Tipe data ini sudah terstruktur dengan baik, walaupun masih sederhana. Tipe data ini menampung sejumlah data dengan tipe data sama (homogen) dalam sebuah variabel.
Cara mendefinisikan tipe data array :
Berdimensi satu
Var
Nama_Variabel_Array[1...N]of tipe_data
1 Nomor Indeks
Berdimensi dua
Var
Nama_Variabel_Array=Array[1...N,1...M]of tipe_data
2 buah Nomor Indeks
8. Tipe Data Record
Tipe data komposit yang sudah terstruktur denagn baik. Tipe data ini digunakan untuk menampung data suatu obyek. Datanya berupa campuran dari tipe data seperti string, numerik, char, boolean, atau tipe data lainnya. Tipe data ini merupakan struktur dasar dari suatu sistem database.
9. Tipe Data Array Record
Tipe data array yang dibangun dari tipe data record.
10. Tipe Data Citra
Berisi grafik/gambar yang banyak digunakan pada aplikasi video.
Data Structur di bahasa C:
Struct adalah tipe data yang dapat melakukan penyimpanan beberapa data yang saling terkait (seperti Nama, NRP, Alamat), sebagai suatu kesatuan, sehingga data-data tersebut seakan-akan menjadi suatu data tunggal. Pembuatan tipe data baru dalam C dilakukan dengan menggunakan kata kunci struct, yang merupakan kependekan dari structure (struktur).
Syntax :
Struct [<struct type name>]{
[<type><variabel-name[,variabel-name, …]>];
.
.
} [<structure variabels>];
Contoh :typedef struct { int NIP ; char nama[30] } pegawai_t;
Perbedaan dengan Tipe data lain :
Tipe data yang lain hanya terdiri dari 1 element, sehingga hanya dapat menyimpan sebuah nilai atau sebuah string saja, sedangkan tipe data struct dapat menyimpan beberapa elemen, dengan berbagai macam tipe seperti int, char, long, dll.
Operator titik digunakan sebagai pemisah antara variabel struktur dengan elemennya, penulisan ini sebaiknya tidak dipisahkan oleh spasi. Operator ini berfungsi untuk mengakses suatu element dari variabel struktur.
Operator panah digunakan untuk pengaksesan operasi pointer, atau menggunakan operator bintang (’*’), untuk pengaksesan element-element suatu struktur yang berupa pointer.
Contoh :typedef struct { int NIP ; char nama[30] } pegawai_t, *peg_t;
Pengaksesan dengan operator titik dan panah:
– p Pegawai_t.NIP
– p Pegawai_t.nama
– ( (*peg_t).NIP == peg_t -> NIP
Contoh kasus dalam bidang Elektro:
Untuk menyajikan Algoritma terdapat kesepakatan dalam bidang pemrograman peralatan elektronik, yaitu dapat dinyatakan dalam bentuk:
- Menggunakan bahasa natural dalam bentuk narasi seperti contoh di atas.
- Menggunakan diagram alir (flow chart)
Adapun cara penyajian algoritma, adalah sebagai berikut:
- Penulisan Algoritma Menggunakan Bahasa Natural
Untuk penyajian algoritma menggunakan bahasa natural dalam bentuk narasi, dan sebagai contoh penulisannya dapat dilihat pada contoh permasalahan di atas.
- Diagram Alir (Flow Chart)
Flowchart adalah algoritma penyelesaian suatu masalah yang diwujudkan dalam bentuk penggambaran bagan, dimana dalam bagan tersebut memiliki kandungan aliran data yang lebih menggambarkan langkah-langkah penyelesaian suatu masalah. Terdapat 2(dua) penggambaran Flowchart yaitu System Flowchart dan Program Flowchart.
Flowchart dapat digunakan untuk menggambarkan perilaku suatu algoritma (dengan menggunakan gambar-gambar atau tanda-tanda yang sesuai) Bila suatu flowchart lengkap telah selesai dikerjakan, gambaran lengkap tentang proses pemikiran seorang programmer dalam memecahkan suatu masalah dapatlah diikuti. Peranan flowchart sangat penting terutama pada pemeriksaan program. Flowchart yang merupakan bagian penting dalam suatu program yang telah selesai juga dapat membantu orang lain dalam memahami algoritma yang tepat yang dibuat programmer.
Ada dua jenis flowchart, yaitu:
- Flowchart sistem: menunjukkan jalannya program secara umum.
- Flowchart terperinci: rincian (detail) yang dibutuhkan programer.
Biasanya suatu program yang rumit didahului dengan flowchart sistem, lalu dilengkapi pula dengan. flowchart terperinci. Keuntungan dari flowchart ialah dapat menunjukkan urutan langkah-langkah dengan menggunakan simbol anak panah.
- Flowchart Sistem
Digunakan untuk menggambarkan aliran data atau informasi secara garis besarnya yang melewati suatu tahapan proses dalam sebuah sistem dengan menunjukkan media yang digunakan dalam sistem. Seperti media input, output maupun media penyimpanan dalam proses pengolahan data.
Adapun simbol yang digunakan meliputi:
Gambar 1. Simbol flowchart sistem
b, Flowchart Program
Digunakan untuk menggambarkan aliran data atau informasi secara rinci yang melewati suatu tahapan proses dengan menunjukkan tahapan penyelesaian permasalahan untuk mendapatkan hasil sesuai tujuan yang diharapkan.
Adapun simbol yang digunakan adalah sebagai berikut:
Gambar 2. Simbol Flowchart Umum
Sebuah flowchart minimal umumnya terdiiri dari simbol mulai yang menggambarkan bahwa sebuah algoritma dimulai, dilanjutkan dengan masukan data, selanjutnya data diproses kemudian hasil proses dikeluarkan dan diakhiri dengan simbol akhir dari aliran program.
Gambar 3 adalah contoh flowchart sederhana penyelesaian bertahap untuk menghitung luas sebuah bangun segi empat, dimana bangun tersebut memiki panjang = p dan lebar = l, dimana luas = p x l :
Menghitung luas bangun ternyata tidak hanya sebuah bangun yang bisa dilakukan dalam program, dengan menambahkan menu pilihan ternyata dapat dipilih untuk menghitung beberapa luas bangun dari bidang tertentu.
Jika sebuah algoritma membutuhkan alternatip pilihan maka dibutuhkan simbol percabangan, sebagai contoh sebuah sistem program harus melakukan layanan perhitungan luas bangun segi empat, luas bangun segi tiga dan luas bangun lingkaran.
Gambar 3. Flowchart Sederhana (menghitung luas)
Dengan demikian maka terdapat pilihan alternatip (gambar 4), jika dipilih 1 maka digunakan untuk menghitung luas bidang segi empat, untuk pilihan 2 digunakan menghitung luas bangun segi tiga dan untuk pilihan 3 digunakan untuk menghitung luas bangun lingkaran, maka flowchart-nya dapat digambarkan sebagai berikut:
Gambar 4 Simbol Flowchart Program Pilihan
Aliran program dimulai, kemudian memberi kesempatan pada user untuk memberikan masukan berupa angka 1 atau angka 2 atau angka 3, jika angka tersebut adalah 1 maka akan diteruskan pada proses menghitung luas bangun segi empat.
Jika ternyata angka yang diberikan adalah 2 maka akan diteruskan pada proses menghitung luas bangun segi tiga, dan juika ternyata angka yang diberikan adalah 3 maka akan diteruskan pada proses menghitung luas bangun lingkaran.
Suatu saat dibutuhkan sebuah algoritma untuk menggambarkan suatu proses yang berulang, misal pada suatu program dibutuhkan sebuah rutin yang berfungsi sebagai penghitung (counter). Untuk itu flowchartnya dapat digambarkan sebagai berikut:
Gambar 5. Flowchart Untuk Proses Diulang
Dalam membuat algoritma untuk pemrograman mikroprosesor dalam bahasa asembler biasanya notasi yang digunakan dalam flowchart menggunakan kode-kode, berikut contoh flowchart dengan notasi kode:
Gambar 6. Flowchart Dengan Notasi Kode Program.
Contoh permasalahan 3:
Mengisi akkumulator dengan data 15H, register D dengan data EAH dan register B dengan data 55H. Tambahkan isi akku dengan isi register D. Hasil penjumlahan diatas bersama carrynya di kurangi dengan isi register B.
Penyelesaian (Flowchart)
Contoh permasalahan 4:
Mengeluarkan data FFH dan 00H dengan tunda waktu FFHxFFH program berlangsung terus, sampai pada penekanan tombol reset. Program utama pada 1800H Program bagian pada 1F00H
Penyelesaian (algoritma-narasi)
- Program Utama
Alamat register kontrol 43 H
Alamat Port C 42 H
Kata kendali : 80 H ( Port A, B dan C = keluaran )
Mengisi akku dengan data kata kendala ( 80 H )
Keluarkan isi akku ke register kontrol
loop ( pengulangan tak berakhir )
isi akku dengan data FFH
keluarkan isi akku ke register port C tinggi
panggil tunda waktu
isi akku dengan data 00 H
keluarkan isi akku ke register port C tinggi
panggil tunda waktu
- program bagian tunda waktu
isi register H dengan data FFH
loop 1
isi register L dengan data FFH
loop 2
kurangkan isi L dengan 1
loncat ke loop 2, bila LF 0
kurangkan isi H dengan 1
loncat ke loop 1, bila HF 0
mengakhiri program bagian (kembali ke program utama)
Definisi Pseudo-code
Kode atau tanda yang menyerupai (pseudo) atau merupakan penjelasan cara menyelesaikan suatu masalah. Pseudo-code sering digunakan oleh manusia untuk menuliskan algoritma.
Contoh kasus : mencari bilangan terbesar dari dua bilangan yang diinputkan
Solusi Pseudo-code :
Solusi Pseudo-code :
Masukkan bilangan pertama
Masukkan bilangan kedua
Jika bilangan pertama > bilangan kedua maka kerjakan langkah 4, jika tidak, kerjakan langkah 5.
Tampilkan bilangan pertama
Tampilkan bilangan kedua
Masukkan bilangan kedua
Jika bilangan pertama > bilangan kedua maka kerjakan langkah 4, jika tidak, kerjakan langkah 5.
Tampilkan bilangan pertama
Tampilkan bilangan kedua
Solusi Algoritma :
Masukkan bilangan pertama (a)
Masukkan bilangan kedua (b)
if a > b then kerjakan langkah 4
print a
print b
Masukkan bilangan kedua (b)
if a > b then kerjakan langkah 4
print a
print b
Contoh Lainnya dalam Algortima dan Pseudo-code :
Tahapan dalam Pemrograman
Langkah-langkah yang dilakukan dalam menyelesaikan masalah dalam pemrograman dengan komputer adalah :
Definisikan Masalah
Buat Algoritma dan Struktur Cara Penyelesaian
Menulis Program
Mencari Kesalahan
Uji dan Verifikasi Program
Dokumentasi Program
Pemeliharaan Program
Buat Algoritma dan Struktur Cara Penyelesaian
Menulis Program
Mencari Kesalahan
Uji dan Verifikasi Program
Dokumentasi Program
Pemeliharaan Program
Contoh Kasus Lainnya
Sebagai contoh sederhana, hitunglah keliling persegi panjang dengan komputer, maka sebelum membuat program kita buat dahulu algoritmanya sebagai berikut :
1. Dapatkan nilai panjang dan lebar persegi panjang
2. Hitung keliling persegi panjang dengan menggunakan rumus 2 x (panjang+lebar)
3. Cetak hasil keliling persegi panjan
2. Hitung keliling persegi panjang dengan menggunakan rumus 2 x (panjang+lebar)
3. Cetak hasil keliling persegi panjan
Algoritma di atas dinyatakan dalam bentuk bahasa manusia yang mudah dimengerti oleh kita. Biasanya untuk penyelesaian masalah yang menggunakan komputer algoritmanya dapat disajikan dalam salah satu dari 2 bentuk algoritma yaitu Diagram Alir (Flowchart) atau Pseudocode.
Menggunakan Pseudocode
Pseudocode yaitu suatu bentuk algoritma yang menggunakan berbagai notasi yang dimaksudkan untuk menyederhanakan bentuk kalimat manusia.
1. Panjang 6
2. Lebar 8
3. Keliling 0
4. Keliling 2 * ( P + L )
5. cetak K
2. Lebar 8
3. Keliling 0
4. Keliling 2 * ( P + L )
5. cetak K
KESIMPULAN:
- Dalam menyusun program aplikasi pada sebuah hardware mikroprosesor, seharusnya diawali dengan penyusunan algoritma.
- Sebuah program aplikasi merupakan cara menyusun berbagai instruksi-instruksi berdasarkan urutan logika tertentu untuk memenuhi kebutuhan.
- Algoritma dapat digunakan untuk menyelesaikan berbagai masalah, karena untuk membangun sebuah program aplikasi diperlukan sebuah bahasa pemrograman yang disebut dengan bahasa assembly, melalui bahasa ini instruksi disusun dalam urutan sekuensial mengikuti tata aturan dan konsep yang terstruktur.
- Konsep algoritma pemrograman dapat dituangkan dalam bentuk diagram alir (flowchart).
0 komentar