Proses translasi algoritma ke dalam suatu bahasa Pemrograman disebut

       PEMBAHASAN TENTANG ALGORITMA

Sebelum belajar algoritma pemrograman, akan lebih baik kita pahami terlebih dahulu langkah-langkah pembuatan suatu program. Terdapat beberapa langkah umum dalam pembuatan suatu program yaitu:

  1. Mendefinisikan masalah
  2. Mencari solusinya
  3. Menentukan algoritma
  4. Menulis program
  5. Menguji program
  6. Mendokumentasikan program
  7. Merawat program

Mendefinisikan masalah Langkah yang pertama dilakukan adalah mendefinisikan permasalahan. langkah ini harus dilakukan untuk menentukan masalah yang ada serta ditentukan pula input dan output program.

Mencari solusi

Kemudian ditentukan solusi dari permasalahan yang dihadapi. Bila untuk mendapatkan solusi harus melalui langkah yang terlalu rumit dapat dilakukan pembagian masalah dalam beberapa modul-modul kecil agar mudah untuk dikerjakan. Lalu modul-modul kecil tersebut digabungkan menjadi satu untuk dapat menentukan solusi.

Menentukan algoritma

Dalam pemilihan algoritma, pemrogram atau analis harus menggunakan algoritma yang sesuai dan efisien untuk masalah yang dihadapi.

Menulis program

Penulisan program bisa dilakukan dengan menggunakan bahasa pemrograman yang dikuasai dan memiliki kompabilitas dengan perangkat keras yang akan menggunakan program tersebut.

Menguji program

Bila program sudah selesai dibuat, pengujian diperlukan untuk mengetahui apakah program yang dibuat sudah layak untuk digunakan.

Mendokumentasikan program


Penulisan dokumentasi yang biasanya dilupakan oleh pemrogram menjadi sangat penting saat akan dilakukan perubahan pada program yang dibuat. penulisan program ini dapat dilakukan dengan menulis komentar pada source code tentang kegunaannya (variabel, parameter, procedur, fungsi).
Merawat program Program yang sudah selesai dibuat juga perlu dirawat dengan pendeteksian bug yang belum diketahui sebelumnya juga penambahan fasilitas baru yang mempermudah pengguna program.

Dari penjelasan diatas, dapat kita peroleh kesimpulan bahwa pembelajaran algoritma pemrograman adalah bagian dari langkah-langkah pembuatan program. Untuk lebih jelasnya tentang algoritma dan pemrograman akan diulas sebagai berikut :

Ditinjau dari asal-usul katanya, kata Algoritma sendiri mempunyai sejarah yang aneh. Orang hanya menemukan kata algorism yang berarti proses menghitung dengan angka arab. Anda dikatakan algorist jika Anda menghitung menggunakan angka arab. Para ahli bahasa berusaha menemukan asal kata ini namun hasilnya kurang memuaskan. Akhirnya para ahli sejarah matematika menemukan asal kata tersebut yang berasal dari nama penulis buku arab yang terkenal yaitu Abu Ja’far Muhammad Ibnu Musa Al-Khuwarizmi. Al-Khuwarizmi dibaca orang barat menjadi Algorism. Al-Khuwarizmi menulis buku yang berjudul Kitab Al Jabar Wal-Muqabala yang artinya “Buku pemugaran dan pengurangan” (The book of restoration and reduction). Dari judul buku itu kita juga memperoleh akar kata “Aljabar” (Algebra). Perubahan kata dari algorism menjadi algorithm muncul karena kata algorism sering dikelirukan dengan arithmetic, sehingga akhiran –sm berubah menjadi –thm. Karena perhitungan dengan angka Arab sudah menjadi hal yang biasa, maka lambat laun kata algorithm berangsur-angsur dipakai sebagai metode perhitungan (komputasi) secara umum, sehingga kehilangan makna kata aslinya. Dalam bahasa Indonesia, kata algorithm diserap menjadi algoritma.

1.1 Definisi Algoritma

“Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis”. Kata logis merupakan kata kunci dalam algoritma. Langkah-langkah dalam algoritma harus logis dan harus dapat ditentukan bernilai salah atau benar. Dalam beberapa konteks, algoritma adalah spesifikasi urutan langkah untuk melakukan pekerjaan tertentu. Pertimbangan dalam pemilihan algoritma adalah, pertama, algoritma haruslah benar. Artinya algoritma akan memberikan keluaran yang dikehendaki dari sejumlah masukan yang diberikan. Tidak peduli sebagus apapun algoritma, kalau memberikan keluaran yang salah, pastilah algoritma tersebut bukanlah algoritma yang baik.

Pertimbangan kedua yang harus diperhatikan adalah kita harus mengetahui seberapa baik hasil yang dicapai oleh algoritma tersebut. Hal ini penting terutama pada algoritma untuk menyelesaikan masalah yang memerlukan aproksimasi hasil (hasil yang hanya berupa pendekatan). Algoritma yang baik harus mampu memberikan hasil yang sedekat mungkin dengan nilai yang sebenarnya.

Ketiga adalah efisiensi algoritma. Efisiensi algoritma dapat ditinjau dari 2 hal yaitu efisiensi waktu dan memori. Meskipun algoritma memberikan keluaran yang benar (paling mendekati), tetapi jika kita harus menunggu berjam-jam untuk mendapatkan keluarannya, algoritma tersebut biasanya tidak akan dipakai, setiap orang menginginkan keluaran yang cepat. Begitu juga dengan memori, semakin besar memori yang terpakai maka semakin buruklah algoritma tersebut. Dalam kenyataannya, setiap orang bisa membuat algoritma yang berbeda untuk menyelesaikan suatu permasalahan, walaupun terjadi perbedaan dalam menyusun algoritma, tentunya kita mengharapkan keluaran yang sama. Jika terjadi demikian, carilah algoritma yang paling efisien dan cepat.

Definisi lain dari algoritma  :

–  Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis.

– Algoritma adalah urutan logis pengambilan keputusan untuk pemecahan masalah.

– Algoritma adalah urutan langkah-langkah berhingga untuk memecahkan masalah logika atau matematika.

– Algoritma adalah logika, metode dan tahapan (urutan) sistematis yang digunakan  untuk memecahkan suatu permasalahan.

Menurut Donald E. Knuth dalam bukunya yang berjudul The Art of Computer Programming, algoritma harus mempunyai lima ciri penting :

  1. Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas (berhingga)
  2. Setiap langkah harus didefinisikan dengan tepat dan tidak berarti-dua (ambiguous)
  3. Algoritma memiliki nol atau lebih masukan (input)
  4. Algoritma mempunya nol atau lebih keluaran (output)
  5. Algoritma harus efektif dan efisien.

1.2 Beda Algoritma dan Program

Program adalah kumpulan pernyataan komputer, sedangkan metode dan tahapan sistematis dalam program adalah algoritma. Program ditulis dengan menggunakan bahasa pemrograman. Jadi bisa disebut bahwa program adalah suatu implementasi dari bahasa pemrograman. Beberapa pakar memberi formula bahwa :

Program = Algoritma + Bahasa (Struktur Data)

Bagaimanapun juga struktur data dan algoritma berhubungan sangat erat pada sebuah program. Algoritma yang baik tanpa pemilihan struktur data yang tepat akan membuat program menjadi kurang baik, demikian juga sebaliknya.

Pembuatan algoritma mempunyai banyak keuntungan di antaranya :

  • Pembuatan atau penulisan algoritma tidak tergantung pada bahasa pemrograman manapun, artinya penulisan  algoritma independen dari bahasa pemrograman dan komputer yang melaksanakannya.
  • Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman.
  • Apapun bahasa pemrogramannya, output yang akan dikeluarkan sama karena algoritmanya sama.

Beberapa hal yang perlu diperhatikan dalam membuat algoritma :

  • Teks algoritma berisi deskripsi langkah-langkah penyelesaian masalah. Deskripsi tersebut dapat ditulis dalam notasi apapun asalkan mudah dimengerti dan dipahami.
  • Tidak ada notasi yang baku dalam penulisan teks algoritma seperti notasi bahasa pemrograman. Notasi yang digunakan dalam menulis algoritma disebut notasi algoritmik.
  • Setiap orang dapat membuat aturan penulisan dan notasi algoritmik sendiri. Hal ini dikarenakan teks algoritma tidak sama dengan teks program. Namun, supaya notasi algoritmik mudah ditranslasikan ke dalam notasi bahasa pemrograman tertentu, maka sebaiknya notasi algoritmik tersebut berkorespondensi dengan notasi bahasa pemrograman secara umum.
  • Notasi algoritmik bukan notasi bahasa pemrograman, karena itu pseudocode dalam notasi algoritmik tidak dapat dijalankan oleh komputer. Agar dapat dijalankan oleh komputer, pseudocode dalam notasi algoritmik harus ditranslasikan atau diterjemahkan ke dalam notasi bahasa pemrograman yang dipilih. Perlu diingat bahwa orang yang menulis program sangat terikat dalam aturan tata bahasanya dan spesifikasi mesin yang menjalannya.
  • Algoritma sebenarnya digunakan untuk membantu kita dalam mengkonversikan suatu permasalahan ke dalam bahasa pemrograman.

Algoritma merupakan hasil pemikiran konseptual, supaya dapat dilaksanakan oleh komputer, algoritma harus ditranslasikan ke dalam notasi bahasa pemrograman. Ada beberapa hal yang harus diperhatikan pada translasi tersebut, yaitu :

1.3 Syarat Algoritma Baik?

  • Tingkat kepercayaannya tinggi (realibility)

Hasil yang diperoleh dari proses harus berakurasi tinggi dan benar.

  • Pemrosesan yang efisien (cost rendah )

Proses harus diselesaikan secepat mungkin dan frekuensi kalkulasi yang sependek mungkin.

Bukan sesuatu yang hanya untuk menyelesaikan satu kasus saja, tapi juga untuk kasus lain yang  lebih   general.

  • Bisa dikembangkan (expandable)

Haruslah sesuatu yang dapat kita kembangkan lebih jauh berdasarkan perubahan requireme yang ada.

Siapapun yang melihat, dia akan bisa memahami algoritma Anda. Susah dimengertinya suatu

program akan membuat susah di-maintenance (kelola).

  • Portabilitas yang tinggi (portability)

Bisa dengan mudah diimplementasikan di berbagai platform komputer

  • Precise (tepat, betul, teliti)

Tidak boleh ada instruksi yang tidak mungkin dikerjakan oleh pemroses yang   menjalankannya.

Jalannya algoritma harus ada kriteria berhenti.

  • Output yang dihasilkan tepat.

                     2. STRUKTUR PENULISAN ALGORITMA

Setiap Algoritma akan selalu terdiri dari tiga bagian yaitu :

  1. Judul (Header)
  2. Kamus
  3. Algoritma

1. Header (Judul)

Judul adalah bagian teks algoritma yang digunakan sebagai tempat mendefinisikan nama dengan menentukan apakah teks tersebut adalah program, prosedur, fungsi.                 contoh judul

Proses translasi algoritma ke dalam suatu bahasa Pemrograman disebut
                                                                                                                                2.Kamus(Deklarasi)                                                                                                                                  Kamus adalah bagian teks algoritma sebagai tempat untuk mendefinisikan :

  • Nama type
  • Nama konstanta
  • Nama variabel
  • Nama fungsi
  • Nama prosedur.

contoh kamus

Proses translasi algoritma ke dalam suatu bahasa Pemrograman disebut

3. Algoritma (Deskripsi)                                                                                                                      Algoritma adalah bagian inti dari suatu  algoritma yang berisi instruksi atau pemanggilan aksi yang telah didefinisikan

contoh deskripsi

Proses translasi algoritma ke dalam suatu bahasa Pemrograman disebut

   3. PENYAJIAN ALGORITMA                                                                                                              Bentuk penyajian untuk algoritma dibagi menjadi 3 (tiga) bentuk penyajian, yaitu :

  • Algoritma dengan struktur Bahasa Indonesia
  • Algoritma dengan Pseudocode
  • Algoritma dengan flowcart
  1. Struktur Bahasa Indonesia

  Sifat: Umum

  • Tidak menggunakan simbol atau sintaks dari suatu bahasa pemrograman.
  • Tidak tergantung pada suatu bahasa pemrograman.

Notasi-notasinya dapat digunakan untuk seluruh bahasa manapun

2.Pseudo-Code                                                                                                                                                                    Penyajian algoritma dengan pseudocode berarti menggunakan kode yang mirip dengan kode pemrograman yang sebenarnya. Pseudocode lebih rinci dari English/Indonesia Structure.                                                                                                                                                       contoh 1 ;

Algoritama Menghitung_rata_rata Kamus a, b, c :interger jumlah     : long rata_rat: real Algoritma input (1, 2, 3) Jml = 1+2+3 Rerata = Jml/3

Output (Rerata)

contoh 2;

Proses translasi algoritma ke dalam suatu bahasa Pemrograman disebut

contoh 3

Solusi Pseudo-code :

  1. Masukkan bilangan pertama
  2. Masukkan bilangan kedua
  3. Jika bilangan pertama > bilangan kedua maka kerjakan langkah 4, jika tidak, kerjakan langkah 5.
  4. Tampilkan bilangan pertama
  5. Tampilkan bilangan kedua

Solusi Algoritma :

  1. Masukkan bilangan pertama (a)
  2. Masukkan bilangan kedua (b)
  3. if a > b then kerjakan langkah 4
  4. print a
  5. print b

PEMBAHASAN TENTANG FLOWCHART

3. Flowchart                                                                                                                                             Flowchart adalah penggambaran secara grafik dari langkah-langkah dan urut-urutan prosedur dari suatu program. Flowchart menolong analis dan programmer untuk memecahkan masalah kedalam  segmen-segmen yang lebih kecil dan menolong dalam menganalisis alternatif-alternatif lain dalam pengoperasian.

lambang / simbol-simbol flowcahart

tertentu dengan aturan sebagai berikut :

Proses translasi algoritma ke dalam suatu bahasa Pemrograman disebut
Proses translasi algoritma ke dalam suatu bahasa Pemrograman disebut
Proses translasi algoritma ke dalam suatu bahasa Pemrograman disebut

Jenis – Jenis FlowChart

  1. Flowchart Sistem
    • Merupakan bagan yang menunjukkan alur kerja atau apa yang sedang dikerjakan di dalam sistem secara keseluruhan dan menjelaskan urutan dari prosedur-prosedur yang ada dalam sistem.
    • Merupakan deskripsi secara grafis dari urutan prosedur-prosedur yang terkombinasi yang membentuk suatu sistem.
  1. Flowchart Dokumen                                                                                                                      Menulusuri alur formulir dan laporan sistem dari satu bagian bagaimana alur formulir dan laporan diproses, dicatat dan disimpan.
  1. Flowchart SkematikMirip dengan flowchart sistem, tidak memakai simbol-simbol standar, untuk menghamat waktu sehingga mengguna simbol abstrak sebelum menerti simbol flowchart secara starndar.
  1. FlowchartProgram                                                                                                                          Menunjukkan setiap langkah program atau prosedur dalam urutan yang tepat saat     terjadi. Programmer à untuk menggambarkan urutan intruksi dari programan Analis à untuk menggambarkan urutan tugas-tugas pekerjaan dalam suatu prosedur  atau operasi.
  1. Florchart Proses                                                                                                                        Teknik pengambaran rekayasa industrial yang memecahkan dan mengalisis langkah-langkah selanjutnya dalam perosedur atau sistem.

Kaidah-Kaidah Umum Pembuatan Flowchart Program

Dalam pembuatan flowchart Program tidak ada rumus atau patokan yang bersifat mutlak. Karena flowchart merupakan gambaran hasil pemikiran dalam menganalisis suatu masalah dengan komputer. Sehingga flowchart yang dihasilkan dapat bervariasi antara satu pemrogram dengan yang lainnya. Namun secara garis besar setiap pengolahan selalu terdiri atas 3 bagian utama, yaitu :

  1. Input,
  2. Proses pengolahan dan
  3. Output

Untuk pengolahan data dengan komputer, urutan dasar pemecahan suatu masalah:

  1. START, berisi pernyataan untuk persiapan peralatan yang diperlukan sebelum menangani pemecahan persoalan.
  2. READ, berisi pernyataan kegiatan untuk membaca data dari suatu peralatan input.
  3. PROSES, berisi kegiatan yang berkaitan dengan pemecahan persoalan sesuai dengan data yang dibaca.
  4. WRITE, berisi pernyataan untuk merekam hasil kegiatan ke peralatan output.
  5. END, mengakhiri kegiatan pengolahan.

Walaupun tidak ada kaidah-kaidah yang baku dalam penyusunan flowchart, namun ada beberapa anjuran :

  1. Hindari pengulangan proses yang tidak perlu dan logika yang berbelit sehingga jalannya proses menjadi singkat.
  2. Jalannya proses digambarkan dari atas ke bawah dan diberikan tanda panah untuk memperjelas.
  3. Sebuah flowchart diawali dari satu titik START dan diakhiri dengan END.

Untuk memahami lebih dalam mengenai flowchart ini, akan diambil sebuah kasus sederhana.

Kasus : Buatlah sebuah rancangan program dengan menggunakan flowchart, mencari luas persegi panjang.

Solusi : Perumusan untuk mencari luas persegi panjang adalah :

L = p . l

di mana, L adalah Luas persegi panjang, p adalah panjang persegi, dan l adalah lebar persegi.

Keterangan :

  1. Simbol pertama menunjukkan dimulainya sebuah program.
  2. Simbol kedua menunjukkan bahwa input data dari p dan l.
  3. Data dari p dan l akan diproses pada simbol ketiga dengan menggunakan perumusan L = p. l.
  4. Simbol keempat menunjukkan hasil output dari proses dari simbol ketiga.
  5. Simbol kelima atau terakhir menunjukkan berakhirnya program dengan tanda End.
  • Pengertian Program/Pemrograman?

              Definisi

Kumpulan instruksi-instruksi tersendiri yang biasanya disebut source code yang dibuat oleh programmer (pembuat program).

  1. Program : Realisasi dari Algoritma.
  2. Program = Algoritma + Bahasa

Berdasarkan terapannya, bahasa pemrograman dapat digolongkan atas dua kelompok besar :

  • Bahasa pemrograman bertujuan khusus. Yang termasuk kelompok ini adalah Cobol (untuk terapan bisnis dan administrasi). Fortran (terapan komputasi ilmiah), bahasa rakitan (terapan pemrograman mesin), Prolog (terapan kecerdasan buatan), bahasa-bahasa simulasi, dan sebagainya.
  • Bahasa perograman bertujuan umum, yang dapat digunakan untuk berbagai aplikasi. Yang termasuk kelompok ini adalah bahasa Pascal, Basic dan C. Tentu saja pembagian ini tidak kaku. Bahasabahasabertujuan khusus tidak berarti tidak bisa digunakan untuk aplikasi lain. Cobol misalnya, dapat juga digunakan untuk terapan ilmiah, hanya saja kemampuannya terbatas. Yang jelas, bahasabahasa pemrograman yang berbeda dikembangkan untuk bermacam-macam terapan yang berbeda pula.

Berdasarkan pada apakah notasi bahasa pemrograman lebih “dekat” ke mesin atau ke bahasa manusia, maka bahasa pemrograman dikelompokkan atas dua macam :

  • Bahasa tingkat rendah. Bahasa jenis ini dirancang agar setiap instruksinya langsung dikerjakan oleh komputer, tanpa harus melalui penerjemah (translator). Contohnya adalah bahasa mesin. CPU mengambil instruksi dari memori, langsung mengerti dan langsung mengerjakan operasinya. Bahasa tingkat rendah bersifat primitif, sangat sederhana, orientasinya lebih dekat ke mesin, dan sulit dipahami manusia. Sedangkan bahasa rakitan dimasukkan ke dalam kelompok ini karena alasan notasi yang dipakai dalam bahasa ini lebih dekat ke mesin, meskipun untuk melaksanakan instruksinya masih perlu penerjemahan ke dalam bahasa mesin.

Bahasa tingkat tinggi, yang membuat pemrograman lebih mudah dipahami, lebih “manusiawi”, dan berorientasi ke bahasa manusia (bahasa Inggris). Hanya saja, program dalam bahasa tingkat tinggi tidak dapat langsung dilaksanakan oleh komputer. Ia perlu diterjemahkan terlebih dahulu oleh sebuah translator bahasa (yang disebut kompilator atau compiler) ke dalam bahasa mesin sebelum akhirnya dieksekusi oleh CPU. Contoh bahasa tingkat tinggi adalah Pascal, PL/I, Ada, Cobol, Basic, Fortran, C, C++, dan sebagainya.

Langkah Pembuatan Program

Mendefinisikan masalah

  1. Kondisi awal, yaitu input yang tersedia.
  2. Kondisi akhir, yaitu output yang diinginkan.
  3. Data lain yang tersedia.
  4. Operator yang tersedia.
  5. Syarat atau kendala yang harus dipenuhi.

Tipe Data, Nama, Nilai dan Operator

Pada umumnya, program komputer bekerja dengan memanipulasi objek(data) di dalam memori. Objek(data) yang akan diprogram bermacam-macam jenis atau tipenya misalnya nilai numerik(angka), karakter(huruf), kumpulan karakter, dll.

Suatu   tipe   menyatakan   jenis   data   yang   akan   dimanipulasi   dalam   program,   gunanya   untuk mendefinisikan objek yang akan diprogram. Suatu tipe diacu dari namanya. Nilai-nilai yang dicakup oleh tipe tersebut dinyatakan dalam domain nilai. Tipe data dikelompokkan menjadi tipe dasar dan tipe bentukan

Tipe yang dapat langsung dipakai(angka-angka atau karakter) karena sudah didefinisikan sebelumnya oleh pemroses bahasa

Bilangan yang tidak mengandung pecahan desimal.

  • Nama Tipe :  Integer
  • Domain Nilai :

Secara teoritis tak terbatas dari -∞ s.d  +∞. Pada algoritma dapat dibatasi tergantung kebutuhan

untuk objek, misalnya untuk jam [0..23]. Dalam implementasinya pada bahasa pemrograman, tipe integer punya rentang nilai terbatas untuk menghemat memory.

Bilangan Riil

Bilangan yang mengandung pecahan desimal

  • Nama Tipe :  Real
  • Domain Nilai :

Secara teoritis tak terbatas dari -∞ s.d +∞. Ditulis dengan titik desimal

  • Contoh nilai       :  2.8 , -0.39, 4.24 , 57.567, -102.00
  • Contoh objek     :  Nilai ujian
  • Nama Tipe          :  Boolean
  • Domain Nilai     :  Benar(True–1) atau Salah(False–0)
  • Konstanta           :  True dan Fals

Tipe yang dibentuk(dan diberi nama) dari tipe dasar atau dari tipe lain yang sudah dikenal, bahkan dapatt didefinisikan sendiri oleh pemrogram.

Macam tipe bentukan :

  1. 1. String(kumpulan karakter)

Deretan karakter dengan panjang tertentu.

  • Nama Tipe          :  String
  • Domain Nilai     :  Satu atau lebih karakter yang diapit oleh tanda petik tunggal
  • Contoh nilai       :  ’Apa kabar’,’Teknik Informatika’,’A234’, ’Ramayana’, ’123’
  • Contoh objek     :  Nama, Alamat
  1. Tipe bentukan dari tipe data dasar atau tipe bentukan lain : Kata Kunci type

Deklarasi kamus data  :  type nama_tipe_bentukan : tipe_data

Contoh   :  membuat sebuah tipe data baru bernama BilBulat yang memiliki domain nilai yang sama dengan tipe integer

type BilBulat : integer;

Record tersusun dari satu atau lebih field. Tiap field menyimpan data dengan tipe tertentu

field 1 field 2 field 3 field n

Deklarasi   kamus data :

type Nama_Record : record < nama_field1  :tipe_field1, nama_field2  :tipe_field2, …. nama_fieldn  : tipe_fieldn>

Contoh :

  1. Titik dalam koordinat kartesian dinyatakan sebagai (x,y) dengan x adalah nilai absis dan y adalah nilai ordinat. Kita dapat menyatakan titik sebagai record dengan (x,y) sebagai field

x        y

type Titik : record < x : real, y : real >    atau type Titik : record< x , y : real >

.   Definisi tipe terstruktur yang mewakili  tanggal dalam kalender Masehi. dd sebagai tanggal,  mm

sebagai bulan, yy  sebagai tahun

dd    mm    yy

type Tanggal : record

0} >

  1. c. NilMhs adalah  tipe  terstruktur  yang menyatakan nilai ujian  seorang mahasiswa  untuk mata kuliah yang diambil(MK)

type NilMhs : record < Nim : integer, NamaMhs : string, KodeMK : string, Nilai : char >

  1. Tipe   terstruktur   untuk   jadwal   kereta   api   yang   terdiri   dari   nomor   kereta(NoKA),   kota asal(KotaAsal), kota tujuan(KotaTujuan), jam berangkat(JamBerangkat), jam tiba(JamTiba)
NoKA KotaAsal KotaTujuan JamBerangkat JamTiba

type JadwalKA : record

Karakter tunggal yang diapit oleh tanda petik satu.

  • Nama Tipe :  char
  • Domain Nilai :

–    Huruf alfabet (’a’..’z’ dan ’A’..’Z’)

–    Tanda baca (’!’, ’?’ , ’,’ , ’.’)

–    Angka ’0’ , ’1’ ,…, ’9’

–    Karakter khas seperti ’#’ , ’&’ , ’%’ , ’@’ , ’*’ , dll

  • Contoh nilai :  ’l’ , ’p’ , ’+’ , ’6’, ’A’
  • Contoh objek :  Jenis Kelamin, Indeks nilai

NAMA

Nama  digunakan  mengidentifikasi  objek  dan  mengacu  objek  tersebut..  Dalam  sebuah  teks algoritmik, objek yang diberi nama bisa berupa :

–    Modul program, Algoritma

–    variabel

–    konstanta

–    type

–    fungsi

–    prosedur

Karena adanya bermacam-macam nama tersebut, maka dalam suatu teks algoritma dikenal nama program, nama variabel, nama konstanta, nama fungsi, nama prosedur, nama type.

Adapun larangan  penulisan nama ;

  1. Diawali dengan angka
  2. Ada sepasi  kosong ditengah
  3. penggunaan kata kunci Contoh input/aoutput
  4. Hanya angka

NILAI

Nilai/Harga adalah besaran dari tipe data yang sudah dikenal. Nilai dapat berupa konstanta yang dipakai langsung, isi yang disimpan oleh variabel atau konstanta, hasil perhitungan suatu ekspresi, atau hasil yang dikirim suatu fungsi.

Algoritma pada dasarnya adalah proses memanipulasi nilai. Nilai dapat dimanipulasi dengan cara : mengisi nilai ke dalam variabel, menuliskan nilai ke piranti keluaran, diacu dari suatu nama untuk perhitungan/ekspresi

OPERATOR DAN EKSPRESI

Operator  adalah  lambang-lambang  yang  biasa  dilibatkan  dalam  program  untuk  melakukan  suatu operasi atau manipulasi. Misalnya untuk perkalian, penjumlahan, perbandingan, dll. Sedangkan ekspresi adalah suatu ”rumus perhitungan” yang terdiri dari operan dan operator. Operan harus mempunyai harga, karena itu dapat  berupa konstanta,  nama  variabel(yang  dipakai  dalam perhitungan  adalah harga  yang dikandung nama variabel), hasil pengiriman suatu fungsi, atau merupakan suatu ekspresi

Contoh Ekspresi :

a ß b + c – 2

Pada ekspresi ini, a, b, dan c merupakan nama variabel yang berperan sebagai operand sedangkan simbol ß, + dan – merupakan operator. Dalam hal ini variabel a diisi dengan hasil penjumlahan b dan c dikurangi 2.

Jenis –jenis operator :

Operator Operasi Contoh Ekpresi Hasil
= Sama dengan a := 6 = 9 a = false
Tidak sama dengan a := 7 ≠ 5 a = true
< Lebih kecil dari a := 4 < 6 a = true
> Lebih besar dari a := 10 > 1 a = true
Lebih kecil atau sama dengan a := 8 ≤ 4 a = false
Lebih besar atau sama dengan a := 3 ≥ 1 a = true

Operator perbandingan digunakan untuk membandingkan dua operand. Operand yang dibandingkan bisa bertipe bilangan bulat, karakter, real, boolean, atau string. Ekspresi yang menggunakan operator perbandingan akan menghasilkan nilai boolean(true atau false).

Operator aritmatika

Operator aritmatika hanya dapat dikenakan pada operand bertipe bilangan bulat atau bilangan real. Ekspresi yang menggunakan operator ini pun hanya akan menghasilkan nilai bilangan bulat atau real

Operator Operasi Hasil Contoh Ekpresi Hasil
+ Jumlah Integer/Real x ß 8 + 13

x ß 4.3 + 2

x = 21

x = 6.3

Kurang Integer/Real x ß 15 – 2

x ß 2.1 – 1.1

x = 13 x = 1.0
* Kali Integer/Real x ß 5 * 6

x ß 2.0 * 1.1

x = 30

x = 2.2

/ Bagi Real x ß 6 / 4 x = 1.5
div Pembagian bilangan bulat integer z ß 7 div 2 z = 3
mod Sisa pembagian bilangan bulat integer z ß 7 mod 2 z = 1
^ Pangkat integer/real z ß 2 ^ 3 z = 8

Operator  ini  dikenakan  pada  operand  bertipe  boolean  dan  ekspresinya  akan  menghasilkan  nilai boolean(true atau false)

Operator Arti Hasil
not negasi boolean
and dan boolean
or atau boolean
xor exclusive OR boolean

Hasil operator not, and, or, dan xor untuk berbagai kombinasi kondisi

A B not A not B A and B A or B A xor B
true true false false true true false
true false false true false true true
false true true false false true true
false false true true false false false

Contoh penggunaan operator pada ekspresi :

Kamus

Gaji_Total, Gaji_Pokok, Potongan : real

HBagi,HSisa : integer k, l, m, n: boolean;

Deskripsi

k := true;

l := false; read(Gaji_Pokok,Potongan) Gaji_Total ß Gaji_Pokok – Potongan HBagi ß (5 * 7) div 3

HSisa ß (5 * 7) mod 3

m := (k or l) and l;

n := ((6 >= 8) and (9 <> 1)) or (3 < 7);

write(HBagi, HSisa, Gaji_Total, m , n);

Aksi sekuensial(runtunan) adalah sederetan instruksi atau aksi yang akan dilaksanakan (dieksekusi) oleh komputer  berdasarkan urutan penulisannya. Jadi, jika dituliskan sebuah aksi sekuensial yang terdiri dari deretan instruksi/aksi ke 1, 2, 3, 4,..n maka setiap instruksi/aksi akan dilaksanakan secara sekuensial mulai dari yang ke-1, kemudian ke-2, ke-3, …s/d ke-n. Program paling sederhana tentunya hanya mengandung salah satu instruksi saja.

Urutan  instruksi  dalam  algoritma  sangat  penting,  ada  aksi  sekuensial  yang  jika  diubah  urutan

instruksi/aksinya akan mempengaruhi hasil eksekusi program.

Contoh aksi sekuensial yang berpengaruh jika diubah urutannya :

Algorima Runtunan_1

Kamus

p , q : integer

Deskripsi

p ß 15

p ß 2* p q ß p write(q)

{nilai q yang dicetak = 30}

Algorima Runtunan_2

Kamus

p, q : integer

Deskripsi

p ß 15 q ß p

p ß 2* p

write(q)

{nilai q yang dicetak = 15}

Beberapa contoh aksi sekuensial :

Contoh 1   :  HELLO

Permasalahan : Tuliskan algoritma untuk menulis ’HELLO’ ke piranti keluaran

Input       :  –

Output    :  ’HELLO’

Proses     :  menulis ’HELLO’

Algoritma Cetak_HELLO

{Menulis ”HELLO” ke piranti keluaran}

Kamus

Deskripsi

write(‘HELLO’)

Contoh 2   :  HELLO X

Permasalahan  :  Tuliskan  algoritma  untuk  membaca  sebuah  nama,  dan  menulis  ’HELLO’  yang  diikuti dengan nama yang diketikkan ke piranti keluaran

Input       :  nama

Output    :  ’HELLO ’

Proses     :  menulis ’HELLO’ diikuti nama yang dibaca

Algoritma Cetak_HELLOX

{Menulis ”HELLO” berikut nama yang dibaca dari piranti masukan ke piranti keluaran}

Kamus

nama : string

Deskripsi

read(nama)

write(‘HELLO ’,nama)

Contoh 3   :  SEGITIGA

Permasalahan : Tuliskan algoritma untuk menghitung Luas Segitiga dengan membaca harga alas (cm) dan tinggi (cm) kemudian menuliskan hasilnya ke piranti keluaran

Input       :  alas(alas segitiga, cm), real dan tinggi(tinggi segitiga, cm) , real

Output    :  Luas(Luas segitiga), real

Proses     :  menghitung dan menuliskan Luas Segitiga =

Algoritma Hitung_Luas_Segitiga

a l a s  x  t i n g g i

{Membaca alas dan tinggi, menghitung Luas=alasxtinggi/2 dan menuliskan hasilnya }

Kamus

alas : real        (panjang alas segitiga, satuan cm)

tinggi : real

Luas : real

Deskripsi read(alas) read(tinggi)

Luas ß alas * tinggi / 2

write(Luas)

Contoh 4 :   GAJI

Permasalahan : Dibaca nama karyawan dan gaji pokok bulanannya. Buat algoritma untuk menghitung dan menampilkan gaji bersih karyawan tersebut dengan ketentuan :

–    Gaji bersih = gaji pokok + tunjangan – pajak

–    Tunjangan untuk setiap pegawai sama dan tetap setiap bulannya yaitu 1.000.000

–    Pajak 10% dari (gaji pokok+tunjangan)

Input       :  Nama dan Gaji Pokok

Output    :  Gaji Bersih

Proses     :  menghitung dan menampilkan Gaji Bersih = gaji pokok + tunjangan – pajak, Tunjangan =

10

1000000 , Pajak =

100

x (Gaji Pokok + Tunjangan)

Algoritma_Gaji_Karyawan

{Menghitung Gaji bersih karyawan dengan membaca nama karyawan dan gaji pokoknya. Gaji bersih = gaji pokok+tunjangan–pajak} Kamus

const Tunjangan : real = 1000000 nama_kar : string

gaji_pokok, pajak, gaji_bersih : real

Deskripsi

read(nama_kar, gaji_pokok)

pajak ß 0.1 * (gaji_pokok + tunjangan) gaji_bersih ß gaji_pokok + tunjangan – pajak write(nama_kar, gaji_bersih)

Contoh 5   :  TUKAR

Permasalahan : Buatlah algoritma yang membaca dua buah bilangan integer yang ditampung dalam variabel, menukarkan harga variabel tersebut dan menuliskan hasil pertukarannya

Input       :  dua bilangan integer A dan B

Output    :  dua bilangan integer A dan B yang telah ditukar harganya

Proses     :  menukarkan harga variabel antara A dan B menggunakan sebuah variabel penampung sementara

Algoritma_TUKAR

{mempertukarkan nilai antara A dan B}

Kamus

A, B, temp : integer

Deskripsi read(A, B) temp ß A

A ß B

B ß temp write(A, B)

6   PEMILIHAN

Analisis kasus adalah salah satu elemen primitif pembangun algoritma. Analisis kasus diperlukan dalam sebuah program ketika terdapat suatu instruksi yang hanya dikerjakan jika memenuhi persyaratan atau kondisi tertentu. Contoh pada algoritma Ibu Tati mengupas kentang

Penulisan Algoritma Yang Mengandung Analisa Kasus/Pemilihan

Permasalahan : Diberikan nama dan nilai mahasiswa, jika nilai tersebut lebih besar atau sama dengan 60 maka mahasiswa tersebut dinyatakan lulus jika nilai lebih kecil dari 60 maka dinyatakan tidak lulus.

–    Uraian kalimat deskriptif (narasi) DESKRIPSI :

o   baca nama dan nilai mahasiswa.

o   jika nilai >= 60 maka keterangan = lulus

o   tetapi jika nilai < 60 maka keterangan = tidak lulus.

tulis nama dan keterangan

–    Flow chart

Penulisan algoritma yang mengandung analisis kasus menggunakan pseudocode terdiri dari dua struktur umum : IF-THEN dan DEPEND-ON

Mendefinisikan analisis kasus adalah mendefinisikan :

–     kondisi boolean, berupa suatu ekspresi yang menghasilkan nilai true atau false

–     aksi yang akan dilaksanakan jika kondisi yang dipasangkan dengan aksi yang bersangkutan dipenuhi.

Ungkapan Kondisi dapat dihasilkan dengan operator perbandingan dan operator logika. contoh kondisi :  x > 100, kar = ‘*’ , (a ≠ 0) or (b = 0) , ketemu = true, not ketemu

IF-THEN

if then aksi

endif

Contoh – contoh :

  1. if x > 100 then x ß x + 1

endif

  1. if (a ≠ 0) or (b = 0) then b ß a * b

write(b)

endif

if a ≤ 10 then read(b)

endif

endif

Contoh Kasus 1 :

Algoritma HURUF_VOKAL

{mencetak pesan ”huruf vokal” bila sebuah karakter yang dibaca merupakan huruf vokal. Asumsi huruf kecil}

Kamus

huruf : char Deskripsi read(huruf)

if (huruf=‘a’) or (huruf=‘i’) or (huruf=‘u’) or (huruf=‘e’) or

(huruf=‘o’) then write(‘Huruf Vokal’)

endif

Contoh Kasus 2 :

Algoritma Bilangan_Genap

{mencetak pesan ”bilangan genap” kemudian kalikan bilangan tersebut dengan angka 2 jika bilangan bulat yang dimasukkan dari piranti masukan merupakan bilangan genap}

Kamus

bil : integer Deskripsi read(bil)

if bil mod 2 = 0 then

write(‘bilangan genap’)

write(bil*2)

endif

if then aksi1

else

aksi2 endif

Contoh – contoh :

  1. if a > 0 then write(‘bilangan positif’)

else

write(‘bilangan negatif’)

endif

  1. if (k > 4) and (k div 2 = 4) then

read(n)

z ß n * k

else read(m)

z ß n / k

endif

Contoh Kasus 1 :

Algoritma Kelulusan_Mhs

{Menerima masukan nama dan nilai mahasiswa, jika nilai tersebut lebih besar atau sama dengan 60  maka mahasiswa tersebut dinyatakan lulus jika tidak maka dinyatakan tidak lulus}

Kamus

Nama : string Nilai : integer Keterangan : string

Deskripsi

read (nama, nilai)

if nilai >= 60 then keterangan ß ‘lulus’

else

keterangan ß ‘tidak lulus’

endif

write(nama, keterangan)

Contoh Kasus 2 :

Algoritma Bilangan_Genap_dan_Ganjil

{Mencetak “bilangan genap” jika bilangan bulat yang dibaca merupakan bilangan genap dan ”bilangan ganjil” jika bukan bilangan genap}

Kamus

Bil : integer Deskripsi read(bil)

if (bil mod 2 = 0) then

write(’Bilangan Genap’)

else

write(’Bilangan Ganjil’)

endif

c. Banyak Kasus
if then aksi1

else

if

aksi2

else

if then

aksi3 endif

endif

endif

Contoh Kasus 1 :

Membaca dua buah nilai integer, jika nilai pertama lebih besar atau sama dengan nilai kedua kerjakan nilai pertama/nilai kedua, jika nilai kedua lebih besar dari nilai pertama kerjakan nilai kedua/nilai pertama, tetapi jika nilai kedua = 0 maka tampilkan pesan error

Algoritma WUJUD_AIR

{Menentukan hasil pembagian}

Kamus

n1, n2 : integer hasil : real

Deskripsi

read(n1,n2)

if n2=0 then write(‘Error’)

else

if n1≥n2 then hasil ß n1/n2

else 

end write

DEPEND-ON

Untuk menyederhanakan pola IF-THEN-ELSE jika terdapat banyak kasus. Strukturnya

depend on (nama)

:  aksi1

:  aksi2

:  aksi3

…..

:  aksiN [otherwise aksiX]

Tiap langkah diperiksa kebenarannya. Jika kondisi ke-k benar maka aksi ke-k dilaksanakan. Kondisi berikutnya tidak dipertimbangkan lagi. Jika tidak ada satupun aksi yang benar maka aksi sesudah otherwise yang dikerjakan.

Contoh Kasus 1:

Dibaca nomor dari 1-7 untuk menunjukkan hari. Tuliskan nama hari sesuai nomor harinya

Algoritma NAMA_HARI

{Mencetak nama bulan }

Kamus

Nomor_hari : integer Deskripsi read(nomor_hari)

depend on (nomor_ hari) nomor_hari=1 : write(‘Januari’) nomor_hari =2 : write(‘Februari’) nomor_hari =3 : write(‘Maret’) nomor_hari =4 : write(‘April’) nomor_hari =5 : write(‘Mei’) nomor_hari =6 : write(‘Juni’) nomor_hari =7 : write(‘Juli’)

otherwise write(‘Bukan nomor hari yang benar’)

7 PENGULANGAN

Komputer memiliki kemampuan untuk mengerjakan suatu instrukasi (aksi) secara berulang-ulang dengan performansi yang sama. Kemampuan tersebut menjadi salah satu keunggulan komputer dibandingkan manusia karena manusia biasanya tidak  menyukai tugas-tugas monoton yang  dikerjakan secara  berulang-ulang (karena lelah atau bosan).

Notasi  pengulangan  adalah  salah  satu  notasi  dasar  dalam  penulisan  algoritma  selain  pemilihan.  Terdapat beberapa macam struktur pengulangan pada algoritma dan beberapa diantaranya yang paling banyajk digunakan antara lain struktur FOR, WHILE-DO, dan REPEAT-UNTIL.. Masing-masing struktur digunakan pada jenis permasalahan yang berbeda meskipun untuk beberapa kasus sebuah struktur pengulangan dapat diganti dengan struktur pengulangan yang lain.

Struktur ini digunakan bila sudah diketahui berapa kali akan mengulang satu atau beberapa aksi dalam badan pengulangan.

Bentuk Umum :

for variabel ß nilai_awal to nilai_akhir do aksi1

aksi2

… aksin

endfor

Catatan :

  • variabel adalah  nama  variabel  kontrol  bertipe  karakter  atau  integer  yang  berfungsi  sebagai  pencacah pengulangan
  • aksi1, aksi2, …, aksin merupakan satu atau lebih instruksi yang dikerjakan secara berulang-ulang
  • nilai_awal dan nilai_akhir bisa berupa konstanta atau ekspresi
  • nilai_awal harus lebih kecil atau sama dengan nilai_akhir
  • tipe data variabel harus sama dengan tipe data nilai_awal dan nilai_akhir
  • Pengulangan akan dilakukan sebanyak nilai_akhir – nilai_awal + 1

Contoh : Membuat sebuah algoritma untuk menampilkan bilangan dari 1 sampai 10

Algoritma Show_Numeric

{ menampilkan bilangan integer dari 1 sampai 10}

Kamus

i : integer

Deskripsi

for i ß 1 to 10 do write(i)

endfor

Bentuk Umum :

for variabel ß nilai_awal downto nilai_akhir do aksi1

aksi2

… aksin

endfor

Catatan :

  • variabel adalah  nama  variabel  kontrol  bertipe  karakter  atau  integer  yang  berfungsi  sebagai  pencacah pengulangan
  • aksi1, aksi2, …, aksin merupakan satu atau lebih instruksi yang dikerjakan secara berulang-ulang
  • nilai_awal dan nilai_akhir bisa berupa konstanta atau ekspresi
  • nilai_awal harus lebih besar atau sama dengan nilai_akhir
  • tipe data variabel harus sama dengan tipe data nilai_awal dan nilai_akhir
  • Pengulangan akan dilakukan sebanyak nilai_awal – nilai_akhir + 1

Contoh : Membuat sebuah algoritma untuk menampilkan bilangan dari N sampai 1 dimana N diinpuitkan dari user

Algoritma Show_Numeric2

{ menampilkan bilangan integer dari N sampai 1}

Kamus

i, N : integer

Deskripsi

read(N)

for i ß N downto 1 do write(i)

endfor

  1. 2. Struktur WHILE-DO (Pengulangan berdasarkan kondisi ulang)

Struktur pengulangan ini biasanya digunakan pada kasus yang belum pasti berapa kali aksi/instruksinya akan diulang. Struktur While mirip struktur IF yang melakukan pemeriksaan ekspresi boolean sebelum satu atau lebih aksi dikerjakan.

Bentuk Umum :

while (kondisi) do aksi1

aksi2

… aksin

endwhile

Catatan :

  • Kondisi adalah kondisi pengulangan berupa ekspresi boolean yang dapat menghasilkan nilai True atau False
  • Aksi pada badan pengulangan dilaksanakan selema (kondisi) menghasilkan nilai True
  • Pengulangan berhenti jika (kondisi) menghasilkan nilai False

Algoritma Show_Numeric3

{ menampilkan bilangan integer dari 1 sampai 10}

Kamus

i : integer

Deskripsi

i ß 1

while i ≤ 10 do write(i)

i ß i + 1

endwhile

Badan pengulangan (aksi) pada struktur While-Do mungkin tidak akan pernah dilakukan karena sebelum aksi pertama dieksekusi, dilakukan test terhadap kondisi pengulangan. Pengulangan ini berpotensi untuk menimbulkan aksi “kosong” (tidak pernah melakukan apa-apa) jika pada test pertama kondisi menghasilkan nilai False

Contoh :

Kamus

f : boolean

Deskripsi

f ß true

while (not f) do f ß not f

enwhile

  1. 3. Struktur REPEAT-UNTIL (Pengulangan berdasarkan kondisi berhenti)

Struktur ini hampir sama dengan struktur Whike dan biasanya digunakan bila jumlah pengulangan belum dapat ditentukan saat program ditulis

Bentuk Umum :

Repeat aksi1 aksi2

… aksin

Until (kondisi berhenti)

Catatan :

  • Kondisi berhenti berupa ekspresi boolean yang dapat menghasilkan nilai True atau False
  • Aksi pada badan pengulangan akan dikerjakan sampai kondisi berhenti bernilai True
  • Badan pengulangan  (aksi)  pada  struktur  ini  minimal  dikerjakan  satu  kali  karena  pada  waktu  eksekusi pengulangan yang pertama tidak dilakukan test terhadap kondisi berhenti. Test  terhadap kondisi berhenti dilakukan setelah aksi dikerjakan

Algoritma Show_Numeric4

{ menampilkan bilangan integer dari 1 sampai 10}

Kamus

i : integer

Deskripsi i ß 1 repeat

write(i)

i ß i + 1 until i > 10

Perbedaan struktur Repeat-Until dan While-Do terletak pada pengecekan kondisi. Jika pada struktur While, kondisi  dicek  pada  awal  badan  pengulangan, sedangkan  pada  struktur  Repeat kondisi  dicek  pada  akhir  badan pengulangan.

Perbedaan yang lain, bila struktur While mengulang pernyataan selama kondisi masih terpenuhui (kondisi = True), struktur Repeat mengulang pernyataan selama kondisi belum terpenuhi (kondisi = False)

STUDI KASUS

  1. Membuat algoritma untuk menampilkan semua bilangan faktor dari n dimana n diinputkan oleh user

Algoritma Faktor

Kamus

n, i : integer

Deskripsi

read(n)

for i ß 1 to n do

if (n mod i = 0) then write(i)

endif

endfor

  1. Buat algoritma untuk membaca dan menghitung nilai mahasiswa kemudian menghitung nilai rata-rata dari nilai mahasiswa   tersebut. Proses pembacaan dan perhitungan dilakukan sampai user tidak ingin menginputkan lagi

Algoritma Rerata_Nilai_Mahasiswa

Kamus

n : integer jawab : char

nilai, jumlah, rata : real

Deskripsi jumlah ß 0 n ß 0 repeat

read(nilai)

jumlah ß jumlah + nilai n ß n + 1

write(‘Apakah anda ingin input data lagi (y/t) ? ’)

read(jawab)

until (jawab = ‘T’) or (jawab = ‘t’)

rata ß jumlah / n write(rata)

Setiap bahasa pemrograman memiliki aturan masing-masing untuk mendefinisikan nama(panjang maks nama, perbedaan huruf besar dan kecil) tetapi dalam algoritma batasan pendefinisian nama tidak seketat pada bahasa pemrograman. Syarat-syarat penggunaan sebuah nama pada algoritma:

–     Pemilihan  nama  harus  interpretatif(disesuaikan  dengan  objek  yang  diidentifikasi)  dan  tidak menimbulkan kerancuan

–    Nama harus unik dalam sebuah algoritma/program

–    Nama tidak boleh dipisahkan oleh spasi

–    Tidak case sensitive (huruf besar dan kecil tidak dibedakan)

–    Tidak boleh mengandung symbol khusus

–    Nama harus dideklarasikan pada bagian tertentu supaya dapat dipakai.

ARRAY

Array merupakan salah satu tipe data terstruktur(structured data type) yang berguna sebagai sebuah tempat penyimpanan elemen data / nilai yang bertipe sama. Penggunaannya sama seperti variabel(untuk menyimpan nilai) tetapi variabel hanya dapat menyimpan sebuah nilai sedangkan pada array data yang diolah bisa beberapa nilai bertipe sama.

Struktur data array dipakai untuk merepresentasikan sekumpulan informasi yang bertipe sama dan disimpan dengan urutan yang sesuai dengan definisi indeks secara kontigu dalam memeori komputer. Oleh karena itu indeks harus suatu tipe data yang mempunyai keterurutan seperti tipe integer atau karakter.

Bentuk array sama seperti tabel sehingga array seringkali juga disebut tabel. Misalnya tabel untuk menyimpan data nilai 100 buah

TabNilai

nilai
60
70
100
80
65
…..
89

index

1

2

3

4

5

…..

100

Sebuah array harus diberi nama, supaya mudah diakses atau diacu. Setiap elemen/bagian array harus diberi  alamat  supaya  dapat  dibedakan  dengan  elemen  lainnya  dan  mudah  dalam  pencarian.  Indeks digunakan sebagai alamat elemen pada array

Deklarasi Array

Supaya sebuah array dapat diisi, arraynya harus dibuat dulu atau dipesan tempatnya (berapa banyak data yang akan dimasukkan ke dalam array) dengan cara dideklarasikan di bagian kamus. Jumlah elemen array tidak dapat diubah selama pelaksanaan program

Bentuk umum deklarasi array :

nama_array : array [range_index] of tipe_elemen

contoh :

TabNilai  : array [1..100] of real Frekuensi : array [‘a’..’z’] of integer NamaKota  : array [1..20] of string

Tipe_elemen menunjukkan tipe data dari elemen tabel, semua isi elemen tabel bertipe sama. Range index bisa berupa integer atau character dan harus menaik.

Setelah sebuah array dideklarasikan, akan disediakan tempat di memori sebanyak jumlah elemen yang

dipesan. Memori adalah tempat untuk menyimpan data yang bersifat sementara sedangkan harddisk untuk menyimpan data yang bersifat permanen. Memori juga memiliki alamat yang dapat diakses jika dibutuhkan.

Operasi Terhadap Array                                                                                                                                                                                                                                                 Operasi  atau  manipulasi  terhadap  array  hanya  dapat  dilakukan  terhadap  satu  elemennya  yang ditunjukkan oleh indeks.

Untuk mengisi atau mengambil data/nilai dari array :

Nama_Array[alamat_index] ç nilai write(Nama_Array[alamat_index]) nama_variabel ç Nama_Array[alamat_index]

Contoh 1   :  Membuat dan mengisi array huruf

ArrHuruf

1 ‘A’
2 ‘N’
3 ‘G’
4 ‘S’
5 ‘A’

Kamus

const N = 5

ArrHuruf : array [1..N] of char

Deskripsi

ArrHuruf[1] ç ‘A’ ArrHuruf[2] ç ‘N’ ArrHuruf[3] ç ‘G’ ArrHuruf[4] ç ‘S’ ArrHuruf[5] ç ‘A’ write(ArrHuruf[3])

PEMROSESAN ARRAY

Pemrosesan terhadap Array berarti memproses elemen mulai dari elemen pertama (elemen dengan indeks terkecil, berturut-turut pada elemen berikutnya, sampai elemen terakhir dicapai). Pemrosesan terhadap elemen array menggunakan bentuk pengulangan sebagai berikut :

for i ç index_awal to index_akhir do

Proses(Nama_Array[i])

endfor

  1. 1. Pengisian elemen array dengan nilai yang dibaca dari piranti masukan

Algoritma Tabel1

Kamus

MyTab : array[1..50] of integer n,I  : integer

Agoritma

read(n)

for i ç 1 to n do read(MyTab[i])

endfor

Algoritma Tabel

Kamus

MyTab : array[1..50] of integer n,i  : integer

Agoritma

read(n)

for i ç 1 to n do read(MyTab[i])

endfo

for i ç 1 to n do write (MyTab[i])

endfor

Contoh 2   :  Algoritma yang membaca sebuah array integer yang menyatakan nilai ujian, TabNilai, mulai indeks  1  sampai  n  dan  menghitung  nilai  rata-rata  ujian  dan  menampilkannya  pada  layar dimana n diinputkan oleh user

Algoritma Nilai_Mahasiswa

Kamus
const NMax = 100

TabNilai : array [1..NMax] of real n,i  : integer

rata : real

Deskripsi

read (n)

for i ß 1 to n do

read(TabNilai[i])

endfor

jumlah ß 0

for i ß 1 to n do

jumlah ß jumlah + TabNilai[i]

endfor

rata ß jumlah / n

jadi kesimpulan array adalah untuk menampung atau menyimpan data yang bertipe sama dengan banyak data dalam satu variabel

dan pemisah atau pembeda data satu dengan data selanjutnya adalah indeks

Array Dua Dimensi

array dua dimensi memiliki indeks lebih dari 1. Jika dalam matematika array dua dimensi seperti matriks.

Deklarasi Kamus:

Nama_Variabel_Array : array[range_index1][rangerange_index1 menunjukkan index baris range_index2 menunjukkan index kolom

Contoh : Untuk membuat matrix di bawah ini

1      2      3

3,5 6 8,9
0 1 7
2,8 4,7 6
9 5,6 4

1

2

3

4

Algoritma Isi_Matriks

Kamus

const baris = 4 const kolom = 3

Mat : array[1..baris][1..kolom] of real

i , j : integer

Algoritma

Mat[1][1] ç 3,5      {pengisian secara langsung dengan sebuah nilai} Mat[1][2] ç 6        {pengisian secara langsung dengan sebuah nilai} Mat[1][3] ç 8,9     {pengisian secara langsung dengan sebuah nilai}

for i ç 1 to baris do                 {pengisian secara dari piranti masukan}

for j ç 1 to kolom do read(Mat[i][j])

endfor

endfor

PEMROSESAN MATRIKS

Pemrosesan terhadap Matriks berarti memproses elemen mulai dari elemen pertama (elemen dengan indeks terkecil, berturut-turut pada elemen berikutnya, sampai elemen terakhir dicapai) untuk setiap baris dan setiap kolom

for i ç index_awal_baris  to index_akhir_baris do

for j ß index_awal_kolom to index_akhir_kolom do

Proses(Nama_Variabel_Array[i][j])

endfor endfor

  1. Pengisian elemen matriks dengan nilai yang dibaca dari piranti masukan

Algoritma Matriks

Kamus

Matrix : array[1..50][1..50] of integer n, m, i, j    :  integer

Agoritma

read(n,m)                         {n adalah banyaknya baris, m adalah banyaknya kolom}

if (n > 0) and (m > 0) then for i  ç 1 to n do

for j ß 1 to m do read(Matrix[i][j])

endfor endfor

endif

Algoritma Tabel

Kamus

Matrix : array[1..50][1..50] of integer n, m, i, j    :  integer

Agoritma

read(n,m)

if (n > 0) and (m > 0) then for i  ç 1 to n do

for j ß 1 to m do read(Matrix[i][j])

endfor

endfor

for i  ç 1 to n do

for j ß 1 to m do write(Matrix[i][j])

endfor endfor

endif