TUGAS
MANDIRI
“Program
Data Penduduk”
Mata
Kuliah: Pemrograman Terstruktur

NAMA
MAHASISWA : MUHAMAD FAJRI MAULANA M I
NIM
:
113410027
KODE
KELAS : 112-IS002-M4
DOSEN : HOTMA
PANGARIBUAN, S.KOM.,M.S.I.
STMIK
PUTERA BATAM
TAHUN 2012
KATA PENGANTAR
Syukur
Alhamdulillah dengan memohon Ridho dari Allah, Tuhan Yang Maha Esa dan atas
berkat Rahmat-Nya, melalui proses yang cukup panjang Tugas Mandiri ini dapat
terselesaikan.
Tugas Mandiri
ini merupakan makalah refrensi bagi mahasiswa, agar dapat membuat tugas akhir (
skripsi ) di semester akhir nanti dengan lancar tanpa adanya kesulitan dan
timbulnya sebuah permasalahan yang sangat berarti, sehingga mempersulit
mahasiswa untuk melanjutkan ke jenjang berikutnya.
Tugas Mandiri
ini bersumber dari disertai penulis dan pengalaman proses pembelajaran serta
reservasi mahasiswa dalam proses
pembelajaran yang telah berlangsung. Untuk itu pada kesempatan yang berbahagia
ini, perkenankan penulis mengucapkan terima kasih yang tulus kepada:
- Bapak dan ibu dosen yang telah membimbing proses pembelajaran, sehingga penulis menemukan banyak hal baru yang belum pernah penulis jumpai sebelumnya.
- Rekan-rekan mahasiswa yang telah membantu dalam proses penulisan Tugas Mandiri ini.
Diharapkan,
semoga makalah ini dapat bermanfaat bagi penulis dan para pembaca. Sekali
menyelam 2-3 pulau terlampaui, oleh karena itu penulis akan menerima dengan
terbuka terhadap kritik dan saran yang membangun dari Bapak/Ibu dosen penilai
serta rekan pembaca.
Salam hangat.
Batam,
2012
Muhamad Fajri Maulana MI
DAFTAR ISI
BAB I . PENGANTAR ALGORITMA ………………………… 4
1.1. PENGANTAR ALGORITMA ………………….…….. 4
A.
SEJARAH ALGORITMA ………………………… 4
A. ALGORITMA & PEMROGRAMAN ………………… 5
B. PEMROGRAMAN ………………………………………… 6
C. PRODUK YANG DI HASILKAN ………………………… 6
D. ATURAN PENULISAN ………………………………… 7
E. PENYAJIAN ALGORITMA ………………………… 9
F. STRUKTUR DAN LAPORAN DASAR PASCAL ………… 11
G. UNIT- UNIT PASCAL ………………………………… 12
H. PEMROGRAMAN PROSEDURAL ………………… 12
I. TIPE – TIPE ALGORITMA BERDASARKAN
FORMAT PENULISAN … 13
J. FLOW CHART …………………………………………… 15
1.2. DASAR – DASAR ALGORITMA ………………………… 18
A. DASAR – DASAR ALGORITMA ………………………… 18
B. STRUKTUR PENULISAN ………………………………… 18
C. KOMENTAR ………………………………………………… 19
D. IDENTIFIER ………………………………………………… 19
E. STRUKTUR DASAR ………………………………………… 19
F. VARIEBLE ………………………………………………… 20
G. EKSPRESI ………………………………………………… 20
H. PENUGASAN …………………………………………… 20
I. INPUT & OUTPUT ………………………………………… 20
BAB II . PEMROGRAMAN ………………………………… 22
A.
PROGRAM ………………………………………………… 22
B.
PENGUJIAN DENGAN F9 ………………………………… 26
C. INPUD DATA ………………………………………… 27
D. HASIL PROGRAM ( OUTPUT ) ………………………… 28
E.
ALGORITMA ………………………………………… 29
F.
FLOWCHART ………………………………………… 33
BAB I
PENGANTAR ALGORITMA
1.1. Pengantar Algoritma
A. Sejarah Algoritma
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 ofrestoration 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
algorithmberangsur-angsur dipakai sebagai metode
perhitungan (komputasi) secara umum, sehingga kehilangan makna kata aslinya.
Dalam bahasa Indonesia,kata algorithm diserap menjadi algoritma.
Algoritma berasal dari bahasa arab “algorism” yang berarti menghitung.Perubahan
kata dari Algorism menjadi Algorithm muncul karena kata Algorism sering
dikelirukan dengan Arithmetic, sehingga akhiran –sm berubah menjadi –thm. kata
Algorithm berangsur-angsur dipakai sebagai metode perhitungan (komputasi)
secara umum, sehingga kehilangan makna kata aslinya. Dalam Bahasa Indonesia,
kata Algorithm diserap menjadi Algoritma.
A. Algoritma dan Pemrograman
A. Pengertian algoritma
Algoritma adalah urutan langkah-langkah logis
penyelesaian masalah yang disusun secara sistematis dan logis. Asal usul kata
algoritma dapat Anda baca dalam buku “The Art of Computer Programming Second Edition
Volume I” yang ditulis oleh Donald E. Knuth (1973, p1-2). Menurut Donald E.
Knuth (1973,p4), algoritma dalam pengertian modern mempunyai kemiripan dengan
istilah resep, proses, metode, teknik, prosedur, rutin.
Algoritma adalah sekumpulan aturan-aturan berhingga yang memberikan sederetan
operasi-operasi untuk menyelesaikan suatu jenis masalah yang khusus. Menurut
Rinaldi Munir, algoritma adalah urutan langkah-langkah logis penyelesaian
masalah yang disusun secara sistematis. Berdasarkan dua pengertian algoritma di
atas, dapat disimpulkan bahwa algoritma merupakan suatu istilah yang luas, yang
tidak hanya berkaitan dengan dunia komputer. “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.
è Penyajian Algoritma
1. Menggunakan Flow Chart (Diagram Alir)
2. Menggunakan Pseudo-Code
è Pembuatan algoritma mempunyai banyak keuntungan di
antaranya:
1. Pembuatan atau penulisan algoritma tidak tergantung
pada bahasa pemrograman manapun, artinya
penulisan algoritma independen dari bahasa pemrograman dan
komputer yang melaksanakannya.
2. Notasi algoritma dapat diterjemahkan ke dalam berbagai
bahasa pemrograman.
3. Apapun bahasa pemrogramannya, output
yang akan dikeluarkan sama karena algoritmanya sama.
B. PEMROGRAMAN
Pemrograman berasal dari kata program yang
diberi awalan pe– dan akhiran –an. Dalam buku ini, program berarti program
komputer. Pengertian program komputer menurut John M. Zelle, Ph.D. dalam
bukunya yang berjudul “Python Programming: An Introduction to Computer Science”
(2002, p1) adalah sekumpulan instruksi langkah per langkah yang memberitahukan
mengenai yang harus dilakukan komputer secara tepat. Pemrograman adalah
segala kegiatan pembuatan program
komputer. Kemudian terdapat pula istilah bahasa
pemrograman yang berarti bahasa yang digunakan dalam pembuatan program
komputer. Berdasarkan pengertian algoritma dan pemrograman, maka dapat
dikatakan bahwa program merupakan hasil penerapan dari algoritma-algoritma.
Akan tetapi, dalam buku ini tidak dibahas materi mengenai pembuatan program
komputer. Buku ini memfokuskan teknik-teknik pembuatan algoritma itu sendiri.
Nama mata kuliah Algoritma dan Pemrograman dalam hal ini berarti mempelajari
pembuatan algoritma-algoritma yang dapat diterapkan dalam pemrograman.
C. Produk yang dihasilkan
pemrogram
- Program dengan rancangan yang baik
(metodologis, sistematis)
- Dapat dieksekusi oleh mesin
- Berfungsi dengan benar
- Sanggup melayani segala
kemungkinan masukan
- Disertai dokumentasi
- Belajar memprogram, titik berat
: designer program
D. Aturan Penulisan Algoritma
Setiap Algoritma
akan selalu terdiri dari tiga bagian yaitu :
1. Judul (Header)
Bagian teks
algoritma yang digunakan sebagai tempat mendefinisikan nama dengan menentukan
apakah teks tersebut adalah program, prosedur, fungsi
2. Kamus
bagian teks
algoritma sebagai tempat untuk mendefinisikan :
•
Nama type
•
Nama konstanta
•
Nama variabel
•
Nama fungsi
•
Nama prosedur
è
Algoritma
Bagian inti dari
suatu algoritma yang berisi instruksi atau pemanggilan aksi yang telah
didefinisikan. Komponen teks algoritma dalam pemrograman procedural dapat
berupa :
•
Instruksi dasar seperti input/output, assignment
•
Sequence (runtutan)
•
Analisa kasus
•
Perulangan
è Urutan dasar pemecahan suatu masalah:
ˇ START, berisi pernyataan untuk persiapan peralatan yang
diperlukan sebelum menangani
pemecahan persoalan.
ˇ READ, berisi pernyataan kegiatan untuk membaca data dari
suatu peralatan input.
ˇ PROSES, berisi kegiatan yang berkaitan dengan pemecahan
persoalan sesuai dengan data yang
dibaca.
ˇ WRITE, berisi pernyataan untuk merekam hasil kegiatan ke
peralatan output.
ˇ END, mengakhiri kegiatan
pengolahan.
è Untuk Menyelesaikan persoalan Programmer haruslah
1. Dapat mendesain algoritma yang menjelaskan bagaimana
persoalan tersebut diselesaikan
2. Menulis/merubah algoritma menjadi suatu program dengan
menggunakan suatu Bahasa
pemrograman yang sesuai.
3. Menggunakan komputer untuk menjalankan program.
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.
Ada beberapa hal yang harus diperhatikanpada
translasi tersebut, yaitu:
a.Pendeklarasian
variable
Untuk mengetahui dibutuhkannya pendeklarasian
variabel dalam penggunaan bahasa pemrograman apabila tidak semua bahasa
pemrograman membutuhkannya.
b. Pemilihan tipe data
Apabila bahasa pemrograman yang akan digunakan
membutuhkan pendeklarasian variabel maka perlu hal ini dipertimbangkan pada
saat pemilihan tipe data.
c. Pemakaian instruksi-instruksi
Beberapa instruksi mempunyai kegunaan yang sama
tetapi masing masing memiliki kelebihan dan
kekurangan yang berbeda.
d. Aturan sintaksis
Pada saat menuliskan program kita terikat dengan
aturan sintaksis dalam bahasa pemrograman
yang akan digunakan.
e. Tampilan hasil
Pada saat membuat algoritma kita tidak memikirkan
tampilan hasil yang akan disajikan. Hal-hal
teknis ini diperhatikan ketika
mengkonversikannya menjadi program.
E. PENYAJIAN ALGORITMA
Beberapa persyaratan untuk menjadi algoritma yang baik
adalah:
• 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.
• Sifatnya general. 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 requirement yang ada.
• Mudah dimengerti. 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). Setiap
instruksi harus ditulis dengan seksama dan tidak ada keraguraguan, dengan
demikian setiap instruksi harus dinyatakan secara eksplisit dan tidak ada
bagian yang dihilangkan karena pemroses dianggap sudah mengerti. Setiap langkah
harus jelas dan
pasti.
Contoh: Tambahkan 1 atau 2 pada x.
Instruksi di atas terdapat keraguan.
• Jumlah langkah atau instruksi berhingga dan tertentu.
Artinya, untuk kasus yang sama banyaknya, langkah harus tetap dan tertentu
meskipun datanya berbeda.
• Efektif. Tidak boleh ada instruksi yang tidak mungkin
dikerjakan oleh pemroses yang akan
menjalankannya.
Contoh: Hitung akar 2 dengan presisi sempurna.
Instruksi di atas tidak efektif, agar efektif instruksi
tersebut diubah.
Misal: Hitung akar 2 sampai lima digit di belakang koma.
• Harus terminate. Jalannya algoritma harus ada
kriteria berhenti. Pertanyaannya adalah apakah
bila jumlah instruksinya berhingga maka pasti terminate?
• Output yang dihasilkan tepat. Jika
langkah-langkah algoritmanya logis dan diikuti dengan seksama
maka dihasilkan output yang
diinginkan.
-Standar penyusunan program
- Kebenaran logika dan penulisan.
- Waktu minimum untuk penulisan program.
- Kecepatan maksimum eksekusi program.
- Ekspresi penggunaan memori.
- Kemudahan merawat dan mengembangkan program.
- User Friendly.
- Portability.
- Pemrograman modular.
F. Struktur dan komponen dasar PASCAL
Struktur dari
suatu program pascal terdiri dari sebuah judul program dan suatu blok program
atau badan program. Blok program dibagi lagi menjadi dua bagian, yaitu : bagian
deklarasi dan bagian pernyataan. Secara ringkas, struktur suatu program pascal
dapat terdiri dari :
-
Judul program
- Blok program
- Bagian
deklarasi
-
deklarasi label
-
deklarasi konstanta
-
deklarasi tipe
-
deklarasi variable
-
deklarasi prosedur
-
deklarasi fungsi
- Bagian pernyataan
G. Unit-unit PASCAL
- kumpulan dari konstanta,
tipe-tipe data, variable, prosedur dan fungsi-fungsi
- Unit System
- pustaka dari
runtime Turbo Pascal yang mendukung semua proses yang dibutuhkan pada waktu
runtime. Unit system berisi semua prosedur dan fungsi standar turbo pascal.
Unit system ini akan secara otomatis digunakan didalam program, sehingga boleh
tidak disebutkan didalam anak kalimat Uses
- Unit Crt
- Digunakan
untuk memanipulasi layer teks ( windowing, peletakkan cursor dilayar, color
untuk teks, kode extanded keyboard dan lainnya).
- Unit Printer
- Merupakan unit yang sangat kecil
dirancang untuk penggunaan printer didalam program
- Unit Dos
è Digunakan bila akan
menggunakan prosedur-prosedur dan fungsi-fungsi standar yang berhubungan dengan
DOS call, semacam DetTime, SetTime, DiskSize, èDiskFree dan lainnya.
- Unit Graph
- menyediakan
suatu kumpulan rutin grafik yang canggih, sehingga dapat memanfaatkannya untuk
keperluan-keperluan pembuatan grafik.
H. Pemrograman Prosedural
Algoritma berisi urutan langkah-langkah penyelesaian
masalah. Ini berarti algoritma adalah proses yang prosedural. Pada program
prosedural, program dibedakan antara bagian data dengan bagian instruksi.
Bagian instruksi terdiri dari atas runtunan (sequence) instruksi yang
dilaksanakan satu per satu secara berurutan oleh sebuah pemroses. Alur
pelaksanaan instruksi dapat berubah karena adanya pencabangan kondisional. Data
yang disimpan di dalam memori dimanipulasi oleh instruksi secara beruntun. Kita
katakan bahwa tahapan pelaksanaan program mengikuti pola beruntun atau
prosedural.
Paradigma pemrograman seperti ini dinamakan
pemrograman prosedural. Bahasa-bahasa tingkat tinggi seperti Cobol, Basic,
Pascal, Fortran, dan C/C++ mendukung kegiatan pemrograman prosedural, karena
itu mereka dinamakan juga bahasa prosedural. Selain paradigma pemrograman
prosedural, ada lagi paradigma yang lain yaitu pemrograman berorientasi objek (Object
Oriented Programming atau
OOP). Paradigma pemrograman ini merupakan trend baru
dan sangat popular akhir-akhir ini. Pada paradigma OOP, data dan instruksi
dibungkus (encapsulation) menjadi satu. Kesatuan ini disebut kelas (class)
dan instansiasi kelas pada saat run-time disebut objek (object). Data
di dalam objek hanya dapat diakses oleh instruksi yang ada di dalam objek itu
saja.
I. Tipe-tipe Algoritma Berdasarkan Format Penulisan
Algoritma adalah independen terhadap bahasa
pemrograman tertentu, artinya algoritma yang telah dibuat tidak boleh hanya
dapat diterapkan pada bahasa pemrograman tertentu. Penulisan algoritma tidak
terikat pada suatu aturan tertentu, tetapi harus jelas maksudnya untuk tiap
langkah algoritmanya. Namun pada dasarnya algoritma dibagi menjadi beberapa
macam berdasarkan format
penulisannya, yaitu:
1. Deskriptif
Algoritma bertipe deskriptif maksudnya adalah
algoritma yang ditulis dalam bahasa manusia seharihari (misalnya bahasa
Indonesia atau bahasa Inggris) dan dalam bentuk kalimat. Setiap langkah
algoritmanya diterangkan dalam satu atau beberapa kalimat.
2. Flow
Chart (Diagram Alir)
Selain dalam bentuk tulisan, algoritma juga dapat
ditulis dalam bentuk diagram diagram dengan anak panah sebagai penunjuk urutan
langkah algoritmanya. Algoritma yang ditulis dengan simbol-simbol demikian yang
dinamakan flow chart. Mengenai lambang-lambang yang digunakan akan
dibahas pada bagian selanjutnya. Sekarang diberikan suatu contoh algoritma
menentukan bilangan terbesardari 3 bilangan seperti yang dicontohkan
sebelumnya, tetapi ditulis dalam bentuk flow
3. Pseudocode
Pseudo berarti imitasi dan code berarti
kode yang dihubungkan dengan instruksi yang ditulis dalam bahasa komputer (kode
bahasa pemrograman). Apabila diterjemahkan secara bebas, maka pseudocode
berarti tiruan atau imitasi dari kode bahasa pemrograman. Pada dasarnya,
pseudocode
merupakan suatu bahasa yang memungkinkan programmer untuk
berpikir terhadap permasalahan yang harus dipecahkan tanpa harus memikirkan syntax
dari bahasa pemrograman yang tertentu. Tidak ada aturan penulisan syntax
di dalam pseudocode. Jadi pseudocode digunakan untuk menggambarkan logika
urut-urutan dari program tanpa memandang bagaimana bahasa pemrogramannya.
Walaupun pseudocode tidak ada aturan penulisan syntax, di dalam buku ini akan
diberikan suatu aturan-aturan penulisan syntax yang cukup sederhana agar
pembaca dapat lebih mudah dalam mempelajari
algoritma-algoritma yang ada di dalam buku ini. Pseudocode
yang ditulis di dalam buku ini akan menyerupai (meniru) syntax-syntax dalam
bahasa Pascal. Namun dibuat sesederhana mungkin sehingga tidak akan ada
kesulitan bagi pembaca untuk memahami algoritma-algoritma dalam buku ini
walaupun pembaca belum pernah mempelajari bahasa Pascal.
Contoh algoritma menentukan bilangan terbesar dari tiga bilangan yang ditulis
dalam bentuk pseudocode bergaya buku ini.
J. Flow Char t (Diagram Al ir )
1. Pengertian
Diagram alir atau flow chart adalah suatu bagan yang
menggambarkan arus logika dari data yang akan diproses dalam suatu program dari
awal sampai akhir. Diagram alir terdiri dari simbol-simbol yang mewakili
fungsi-fungsi langkah program dan garis alir (flow lines) menunjukkan urutan
dari simbolsimbol
yang akan dikerjakan.
2. Simbol-simbol Flow Chart
Simbol terminal (terminator) digunakan untuk
menunjukkan awal dan akhir algoritma Simbol persiapan (preparation)digunakan
untuk memberikan nilai awal suatu variabel atau suatu counter Simbol proses
(process)digunakan untuk proses perhitungan aritmatika atau proses pemindahan
data Simbol Data (data) digunakan untuk menunjukkan proses input maupun output
data. Simbol Keputusan (decision) digunakan untuk pengambilan keputusan dua
jalur atau lebih dalam flow chart. Simbol Penghubung (on-page reference)
digunakan untuk menunjukkan hubungan arus flow chart yang terputus, tetapi
masih dalam halaman yang sama. Simbol Penghubung Halaman Lain (off-page
reference)digunakan untuk menunjukkan hubungan arus flow chart yang
terputusyang berada di halaman lain.
H. Tipe Data
Secara umum, tipe data dalam pemrograman Pascal adalah:
– Tipe data sederhana
– Tipe data standard (standard data type)
è Integer, Real, Boolean, Char, dan String
Derajat Operator
Sudah kita mengenal beberapa tipe data di dalam
Pascal dan operatornya. Di dalam Pascal, operator
– operator tersebut memiliki derajat atau tingakatan.
Adapun kegunaandari derajat ini adalah Pascal
dapat menentukan operator mana yang akan di jalankan
terlebih dahulu.
urutan operator berdasarkan derajatnya: @, not, *, /,
div, mod, as, and, shl, shr, +, -, or, xor, :=, <>, <, >, <=,
>=,
– Char
Char adalah semua tombol yang terdapat pada keyboard
atau lebih lengkapnya semua karakter yang terdapat pada kode ASCII.
Catatan : Apabila char ingin dijadikan sebagai konstanta
maka karakter yang dimasukkan harus diapit dengan tanda kutip satu. Dan apabila
karakter itu berupa tanda kutip satu maka harus diapit dengan dua tanda kutip
satu
– Subrange
Tipe data subrange adalah suatu range yang
menunjukkan nilai terkecil dan nilai terbesar yang dapat dipergunakan.
Deklarasi tipe data subrange mempunyai bentuk: Type pengenal = konstanta1 ..
konstanta2;
dimana: pengenal : nama tipe data yang dideklarasikan
konstanta1 : batas bawah nilai data
konstanta2 : batas atas nilai data Kedua konstanta di
dalam subrange harus bertipe ordinal yang sama, di mana nilai konstanta pertama
lebih kecil atau sama dengan nilai konstanta kedua. Tipe data
real tidak dapat digunakan sebagai nilai subrange, karena
buka tipe ordinal.
– Enumerated
Tipe data enumerated (skalar) menunjukkan kumpulan
dari nilai yang urutannya
sudah pasti. Nilai dari tipe yang dideklarasikan ini akan
diwakili dengan pengenal – pengenal (identifiers) yang akan menjadi nilai suatu
konstanta.
– Tipe data
terstruktur
è Array, record, set, file merupakan suatu data yang
menyimpan array (larik), sebagai contoh 'ABCDEF' merupakan sebuah konstanta
string yang berisikan 6 byte karakter. Ukuran Tempat untuk tipe data ini adalah
2 s/d 256 byte, dengan jumlah elemen 1 s/d 255. String dideklarasikan dengan
string [ konstanta ] atau string. Bila ukuran string tidak didefinisikan maka
akan banyak memakan ruang, karena ukuran string menyesuaikan dengan defaultnya.
Misalkan var kata: string [20]; atau var kata: string; karena string
merupakan array dari karakter.
– Tipe data
penunjuk
è Pointer
routines pada Pascal untuk manipulasi string :
-Length : menghasilkan panjang string.
-Tipe Data Pointer
Pointer merupakan variabel khusus yang berisi suatu
address (alamat) di lokasi lain didalam memory. Suatu variabel yang
points(menunjuk) ke sesuatu sehingga disebut pointer. Ada dua macam pointer:
-typed(tertentu): merupakan pointer yang menunjuk pada
tipe data tertentu pada variable.
-generic(umum): merupakan pointer yang tidak menunjuk pada
tipe data tertentu pada variable.
1.2. Dasar – Dasar Algoritma
A. Dasar – Dasar Algoritma
1. Proses
Dikerjakan
oleh pemroses (CPU)
2. Aksi
Mengerjakan
suatu tindakan (Aksi), maka sejumlah Operasi sesuai dengan Aksi yang dikerjakan
oleh Pemroses
3. Instruksi
Algoritma
disusun oleh sederatan Langkah Instruksi yang Logis
B. Struktur Penulisan Algoritma
Penulisan
algoritma hendaknya menggunakan format pseudocode
agar nantinya
mudah diterjemahkan ke dalam bahasa pemrograman Pascal Pemrograman pada semester berikutnya.
Penulisan algoritma dalam format pseudocode ini mengikuti aturan-aturan yang
dipakai dalam buku tulisan Rinaldi Munir yang berjudul “Algoritma dan
Pemrograman”. Dalam buku tersebut, struktur penulisan algoritma dibagi menjadi
3 bagian yaitu bagian kepala, bagian deklarasi, dan bagian deskripsi.
1. Kepala Algoritma
Kepala
algoritma adalah bagian yang terdiri dari nama algoritma dan penjelasan
algoritma. Aturan pemberian nama algoritma mengacu pada aturan pemberian nama
pengenal yang akan dibahas pada bagian berikutnya. Nama algoritma hendaknya
singkat, namun mencerminkan isi algoritma secara
keseluruhan.
Bagian penjelasan algoritma berisi penjelasan mengenai hal-hal yang dilakukan
oleh algoritma secara singkat.
2. Deklarasi
Bagian
deklarasi berisikan semua nama pengenal yang dipakai di dalam algoritma. Nama
tersebut dapat berupa nama tetapan (konstanta), nama peubah (variabel), nama
tipe, nama prosedur, dan nama fungsi.
3. Deskripsi
Bagian
deskripsi merupakan inti dari algoritma. Bagian ini berisi uraian
langkah-langkah penyelesaian masalah. Langkah-langkah ini dituliskan dengan
notasi-notasi.
C. Komentar (Comment) Algoritma
D. Penamaan/Pengenal (Identifier)
Pemberian
nama harus mengikuti aturan-aturan sebagai berikut:
1. hanya
boleh terdiri dari huruf, angka, atau garis bawah
2. tidak
boleh dimulai dengan angka
3. tidak
membedakan huruf kapital maupun huruf kecil (non case-sensitive)
4. panjang
tidak dibatasi
5. harus
unik, artinya tidak boleh ada nama pengenal yang sama untuk hal yang berbeda
6. hendaknya
mencerminkan kegunaannya.
E. Struktur dasar algoritma dan pemograman
1. Runtunan (Sequence)
Terdiri dari
satu atau lebih instruksi. Tiap instruksi dikerjakan urut sesuai urutan
penulisan
2. Pemilihan
(Selection)
Instruksi
dikerjakan bila telah memenuhi kondisi tertentu
If kondisi
Then aksi1 (kondisi=true) else aksi2 (kondisi=False)
3. Perulangan
(Repetition)
Mengerjakan
instruksi yang berulang.
Repet aksi
until kondisi (true=selesai; false=ulang)
F. Variabel
Variabel
merupakan sesuatu yang digunakan sebagai tempat penyimpanan nilai dalam memori
yang isinya dapat diubah.
G. Ekspresi
Ekspresi
adalah serangkaian perhitungan nilai yang menghasilkan suatu nilai yang
diinginkan. Ekspresi terdiri dari operand dan operator.
Operand adalah nilai-nilai yang akan dihitung. Operator adalah lambang operasi
yang dipakai dalam perhitungan.
H. Penugasan (Assigment)
Penugasan
atau Assignment merupakan
pemberian nilai ke variabel secara langsung. Notasi yang digunakan adalah . Nilai
yang dapat diberikan adalah tetapan, peubah, ekspresi, maupun nilai yang dihasilkan oleh fungsi. Syarat penugasan adalah nilai yang
diberikan harus sesuai dengan
tipe variabel. Apabila tipenya tidak sama, maka berlaku tipe yang lebih luas
dapat menampung tipe yang lebih sempit. Tipe integer dapat ditampung oleh tipe real, sebaliknya tipe real tidak
dapat ditampung oleh tipe integer. Begitu pula dengan string dan char, char dapat diberikan ke string, namun
tidak sebaliknya.
I. Input dan Output
Menurut
Donald E. Knuth (1973, p4-6), algoritma memiliki 5 ciri pokok, yaitu:
1. Finiteness
Algoritma harus selalu berakhir setelah melakukan sejumlah langkah berhingga.
2.
Definiteness Setiap langkah dari suatu algoritma harus terdefinisi secara tepat
(logis).
3. Input
Suatu algoritma dapat tidak memiliki input, ataupun memiliki satu atau lebih
dari satu input.
4. Output
Suatu algoritma harus memiliki paling sedikit satu output.
5.
Effectiveness Algoritma yang dibuat diharapkan efektif, artinya setiap langkah
yang hendak dilaksanakan dalam algoritma haruslah sederhana sehingga dapat
secara prinsip dilakukan dengan tepat dan dalam waktu yang masuk akal apabila
dilakukan secara manual oleh manusia dengan menggunakan pensil dan kertas.
1. Input
Input
artinya meminta data yang diperlukan dari user. Pembuat algoritma juga tidak
perlu memikirkan masalah tampilan saat penginputan berlangsung.
2. Output
Output
artinya mencetak informasi yang dihasilkan oleh algoritma.
BAB II
PROGRAM
A. PROGRAM
Program Kasir;
uses wincrt;
var
nama_barang : array[1..20] of string;
harga : array[1..20] of real;
banyak : array[1..20] of byte;
kata,grs :string;
x,y,i,j :byte;
Jum_Harga,Total_Harga,disc,Total_Bayar,uang :real;
begin
clrscr;
GOTOXY (1,01); Write('UNIVERSITAS PUTERA BATAM');
GOTOXY (1,02); write('PUTERA BATAM MALL');
grs:='====================================================================';
kata:='KASIR 1';
x:=round((78-length(kata))/2);
gotoxy(x,2);writeln(kata);
x:=round((78-length(grs))/2);
gotoxy(x,3);write(grs);
{-----------------------------}
gotoxy(x,4);write('SHOPPING ITEMS');
gotoxy(x,5);write(grs);
gotoxy(x,6);writeln('| No |
ITEMS | @PCS
| TOTAL |TOTAL AMOUNTS |');
gotoxy(x,7);write(grs);
{-------------------------------------------------------------------------}
i:=0;
Total_Harga:=0;
repeat
i:=i+1;
gotoxy(x,7+i);write('| ',i);
gotoxy(x+5,7+i);write('|');
gotoxy(x+7,7+i);readln(Nama_barang[i]);
if Nama_Barang[i] <>'' then begin
gotoxy(x+25,7+i);write('|');
gotoxy(x+28,7+i);readln(Harga[i]);
gotoxy(x+28,7+i);writeln(Harga[i]:10:2);
gotoxy(x+41,7+i);write('|');
gotoxy(x+44,7+i);readln(Banyak[i]);
gotoxy(x+50,7+i);write('|');
Jum_Harga:=Harga[i]*Banyak[i];
gotoxy(x+53,7+i);writeln(Jum_Harga:10:2);
gotoxy(x+65,7+i);writeln('|');
Total_Harga:=Total_Harga+Jum_Harga ; end;
until nama_barang[i]='';
{-------------------------------------------------------------------------}
disc:=5;
if (total_harga > 1000) and (total_harga <9000) then
disc:=0.01 * Total_Harga
else
disc:=10;
if (Total_Harga > 10000) and (Total_Harga <100000) then
disc:=0.05 * Total_Harga
else
disc:=15;
if (total_harga > 100000) and (total_harga <1000000) then
disc:=0.1 * total_harga
else
if (Total_Harga >= 1500000 ) then
disc:=0.15 *Total_Harga;
{-------------------------------------------------------------------------}
kata:='BUYING FAKTUR';
y:=round((78-length(kata))/2);
gotoxy(y,2);writeln(kata);
j:=i-1;
gotoxy(x,8+j);write(grs);
gotoxy(x,8+j+1);write('Total Plan :');
gotoxy(x+53,8+j+1);write(Total_Harga:10:2);
gotoxy(x,8+j+2);write('Discount :');
gotoxy(x+53,8+j+2);write(disc:10:2);
gotoxy(x,8+j+3);write(grs);
gotoxy(x,8+j+4);write('Total amounts after discount :');
Total_Bayar:=Total_Harga-disc;
gotoxy(x+53,8+j+4);write(Total_Bayar:10:2);
gotoxy(x,8+j+5);write('Payment');
gotoxy(x+53,8+j+5);readln(Uang);
gotoxy(x+53,8+j+5);writeln(Uang:10:2);
gotoxy(x,8+j+6);Write(grs);
gotoxy(x,8+j+7);write('Back Payments');
gotoxy(x+53,8+j+7);write(Uang-Total_Bayar:10:2);
gotoxy(X+15,9+j+8);write('**** COUNTER:');write('MUHAMAD FAJRI ****');
gotoxy(X+15,9+j+9);write('**** CHECKER:');write('Mr HOTMA ****');
gotoxy(X+15,9+j+10);write('**** DATE
:TUESDAY, JUNE-2012 ****');
gotoxy(x+1,10+j+11);write('Please check Your Items & Back
Payments');
gotoxy(x+1,10+j+12);write('Thanks to your Attemps');
gotoxy(x+1,10+j+13);write('Please Welcome Again');
writeln
end.
B. PENGUJIAN DENGAN F9

C. INPUT DATA

D. HASIL PROGRAM
E. ALGORITMA
1:Algoritma Kasir;
2:var
3:nama_barang : array[1..20] of string;
4:harga : array[1..20] of real;
5:banyak : array[1..20] of byte;
6:kata,grs :string;
7:x,y,i,j :byte;
8:Jum_Harga,Total_Harga,disc,Total_Bayar,uang :real;
9:begin
10:clrscr;
11:GOTOXY (1,01); Write('UNIVERSITAS PUTERA BATAM');
12:GOTOXY (1,02); write('PUTERA BATAM MALL');
13:grs:='====================================================================';
14:kata:='KASIR 1';
15:x:=round((78-length(kata))/2);
16:gotoxy(x,2);writeln(kata);
17:x:=round((78-length(grs))/2);
18:gotoxy(x,3);write(grs);
{-----------------------------}
19:gotoxy(x,4);write('SHOPPING ITEMS');
20:gotoxy(x,5);write(grs);
21:gotoxy(x,6);writeln('| No |
ITEMS | @PCS
| TOTAL |TOTAL AMOUNTS |');
22:gotoxy(x,7);write(grs);
{-------------------------------------------------------------------------}
23:i:=0;
24:Total_Harga:=0;
25:repeat
26:i:=i+1;
27:gotoxy(x,7+i);write('| ',i);
28:gotoxy(x+5,7+i);write('|');
29:gotoxy(x+7,7+i);readln(Nama_barang[i]);
30:if Nama_Barang[i] <>'' then begin
31:gotoxy(x+25,7+i);write('|');
32:gotoxy(x+28,7+i);readln(Harga[i]);
33:gotoxy(x+28,7+i);writeln(Harga[i]:10:2);
34:gotoxy(x+41,7+i);write('|');
35:gotoxy(x+44,7+i);readln(Banyak[i]);
36:gotoxy(x+50,7+i);write('|');
37:Jum_Harga:=Harga[i]*Banyak[i];
38:gotoxy(x+53,7+i);writeln(Jum_Harga:10:2);
39:gotoxy(x+65,7+i);writeln('|');
40:Total_Harga:=Total_Harga+Jum_Harga ; end;
41:until nama_barang[i]='';
{-------------------------------------------------------------------------}
42:disc:=5;
43:if (total_harga > 1000) and (total_harga <9000) then-
disc:=0.01 * Total_Harga
44:else
45:disc:=10;
46:if (Total_Harga > 10000) and (Total_Harga <100000) then-
disc:=0.05 * Total_Harga
47:else
48:disc:=15;
49:if (total_harga > 100000) and (total_harga <1000000) then-
disc:=0.1 * total_harga
50:else
51:if (Total_Harga >= 1500000 ) then-
disc:=0.15 *Total_Harga;
{-------------------------------------------------------------------------}
52:kata:='BUYING FAKTUR';
53:y:=round((78-length(kata))/2);
54:gotoxy(y,2);writeln(kata);
55:j:=i-1;
56:gotoxy(x,8+j);write(grs);
57:gotoxy(x,8+j+1);write('Total Plan :');
58:gotoxy(x+53,8+j+1);write(Total_Harga:10:2);
59:gotoxy(x,8+j+2);write('Discount :');
60:gotoxy(x+53,8+j+2);write(disc:10:2);
61:gotoxy(x,8+j+3);write(grs);
62:gotoxy(x,8+j+4);write('Total amounts after discount :');
63:Total_Bayar:=Total_Harga-disc;
64:gotoxy(x+53,8+j+4);write(Total_Bayar:10:2);
65:gotoxy(x,8+j+5);write('Payment');
66:gotoxy(x+53,8+j+5);readln(Uang);
67:gotoxy(x+53,8+j+5);writeln(Uang:10:2);
68:gotoxy(x,8+j+6);Write(grs);
69:gotoxy(x,8+j+7);write('Back Payments');
70:gotoxy(x+53,8+j+7);write(Uang-Total_Bayar:10:2);
71:gotoxy(X+15,9+j+8);write('**** COUNTER:');write('MUHAMAD FAJRI ****');
72:gotoxy(X+15,9+j+9);write('**** CHECKER:');write('Mr HERJUN ****');
73:gotoxy(X+15,9+j+10);write('**** DATE :TUESDAY, 31-JAN-2012 ****');
74:gotoxy(x+1,10+j+11);write('Please check Your Items & Back
Payments');
75:gotoxy(x+1,10+j+12);write('Thanks to your Attemps');
76:gotoxy(x+1,10+j+13);write('Please Welcome Again');
77:writeln
78:end.
![]() |
|
|

Yes

No comments:
Post a Comment