Selasa, 22 Desember 2009

PKM

PEMBUATAN SIRUP KERSEN (Muntingia calabura) SEBAGAI ALTERNATIF
OBAT ASAM URAT YANG AMAN


Program Kreativitas Mahasiswa Kewirausahaan
( PKMK )


Diusulkan Oleh :

1. Ratri Rahayu ( 4101408041 )
2. Defri Restian Y. ( 4301408010 )
3. Dian Kurnia Febriyani ( 4401409027 )


UNIVERSITAS NEGERI SEMARANG

2009

A. JUDUL PROGRAM
“PEMBUATAN SIRUP KERSEN (Muntingia calabura) SEBAGAI ALTERNATIF OBAT ASAM URAT YANG AMAN.”

B. LATAR BELAKANG MASALAH
Kesehatan adalah harta yang tak ternilai harganya, kesehatan bisa mendukung berbagai aktivitas kita dalam meraih keberhasilan dan juga kebahagiaan hidup. Cara yang murah dan mudah untuk mencapai kesehatan yang optimal adalah mencegah penyakit yang menyerang kita yaitu dengan menjalani pola hidup sehat, berolahraga dan mengkonsumsi makanan/minuman kesehatan.
Makanan kesehatan adalah makanan dan minuman yang dikonsumsi secara teratur bisa meningkatkan derajat kesehatan yang optimal, semula pemanfaatannya ditujukan untuk mencegah timbulnya berbagai penyakit degeneratif dan meningkatkan daya tahan tubuh. Namun, sesuai perkembangannya makanan dan minuman kesehatan dimanfaatkan pula sebagai pendamping dari pengobatan medis dalam membantu proses penyembuhan suatu penyakit.
Salah satu solusi yang mungkin dapat ditawarkan untuk menjaga daya tahan tubuh dan mencegah timbulnya berbagai penyakit adalah dengan mengkonsumsi minuman kesehatan. Telah banyak minuman kesehatan yang ditawarkan berupa produk-produk siap saji yang bisa langsung dikonsumsi. Seiring dengan perkembangan teknologi, kersen (Muntingia calabura) bisa dimanfaatkan sebagai minuman kesehatan (dalam bentuk sirup) terutama untuk obat-obatan.
Kersen atau talok adalah nama sejenis pohon dan buahnya yang kecil dan manis. Di beberapa daerah, seperti di Jakarta, buah ini juga dinamai ceri. Nama-nama lainnya di beberapa negara adalah: datiles, aratiles, manzanitas (Filipina), mât sâm (Vietnam); khoom sômz, takhôb (Laos); takhop farang (Thailand); krâkhôb barang (Kamboja); dan kerukup siam (Malaysia).
Juga dikenal sebagai capulin blanco, cacaniqua, nigua, niguito (bahasa Spanyol); Jamaican cherry, Panama berry, Singapore cherry (Inggris) dan nama yang tidak tepat, Japanse kers (Belanda), yang lalu dari sini diambil menjadi kersen dalam bahasa Indonesia. Nama ilmiahnya adalah Muntingia calabura.
Pohon kersen khususnya berguna sebagai pohon peneduh di pinggir jalan. Pohon kecil ini awalnya sering tumbuh sebagai semai liar di tepi jalan, selokan, atau muncul di tengah retakan tembok lantai atau pagar, dan akhirnya tumbuh dengan cepat (biasanya dibiarkan saja) membesar sebagai pohon naungan. Sebab itulah pohon kersen acapkali ditemukan di wilayah perkotaan yang ramai dan padat, di tepi trotoar dan lahan parkir, di tepi sungai yang tidak terurus atau di tempat-tempat yang biasa kering berkepanjangan.
Kersen merupakan jenis pioner yang khas, menjelajah lahan-lahan yang terganggu di dataran rendah tropik, yang dapat mempertahankan pertumbuhan yang sinambung. Kersen dapat tumbuh baik pada ketinggian sampai 1000 m dpl. Di Asia Tenggara, kersen merupakan salah satu jenis pohon pinggir jalan yang umum sekali dijumpai, terutama di wilayah-wilayah yang kering seperti di Jawa bagian timur. Kersen tumbuh sendiri di pekarangan yang terinjak-injak dan sepanjang halaman muka toko, di tempat yang tak ada pohon lain dapat tumbuh. Jenis ini menyenangi pH 5,5-6,5; toleransinya terhadap garam jelek sekali.
Buah kersen di daerah Srilangka sering diawetkan dan dibuat selai jam fruit. buah ini sangat digemari di Mexico dan umumnya dijual pada pasar-pasar tradisional dalam jumlah yang banyak. Jus buah kersen sangat bermanfaat dan memiliki kandungan yang lebih jika dibandingkan dengan berbagai larutan isotonik yang kini banyak beredar di pasaran.
Kandungan buah kersen setiap 100 gram kersen terkandung : air (77,8 gram),protein (0,384 gram), Lemak (1,56 Gram), karbohidrat (17,9 gram), serat (4,6 gram), abu (1,14 gram), kalsium (124,6 mg), fosfor (84mg), Besi (1,18 mg), karoten (0,019g), tianin (0,065g), ribofalin (0,037g), niacin (0,554 g) dan kandungan vitamin C (80,5 mg) nilai energi yang dihasilkan adalah 380KJ/100 gram. Sedangkan daun kersen telah lama dimanfaatkan sebagai tanaman obat tradisional yang digunakan sebagai obat sakit kepala dan anti radang oleh masyarakat Peru. Di Indonesia secara tradisional buah kersen digunakan untuk mengobati asam urat dengan cara mengkonsumsi bauh kersen sebanyak 9 butir 3 kali sehari hal ini terbukti dapat mengurangi rasa nyeri yang ditimbulkan dari penyakit asam urat.
Adapun klasifikasi dari Kersen adalah sebagai berikut:
Kerajaan : Plantae
Divisio : Magnoliophyta
Kelas : Magnoliopsida
Ordo : Malvales
Familia : Muntingiaceae
Genus : Muntingia L.
Species : Muntingia calabura
Dari seluruh data diatas, sangat jelas bahwa Kersen memiliki sumber-sumber zat gizi, antiseptik, antiflamasi, antitumor, dan penyembuh asam urat sehingga bisa dimanfaatkan untuk menjaga daya tahan tubuh dan menyembuhkan berbagai macam penyakit. Untuk itu, pembuatan sirup yang bahan baku dasarnya kersen ini merupakan salah satu penganekaragaman hasil olahan kersen seiring dengan perkembangan teknologi.

C. PERUMUSAN MASALAH
Berdasarkan latar belakang masalah diatas, maka permasalahan yang akan dibahas dalam program ini adalah :
1. Bagaimana membuat sirup kersen sebagai alternatif obat asam urat yang aman dalam rangka menumbuhkan kreatifitas berwirausaha dengan menciptakan peluang bisnis yang berorientasi pada profit?
2. Bagaimana memanfaatkan kersen sebagai alternatif minuman kesehatan (berbentuk sirup) yang dapat dikonsumsi oleh masyarakat dengan biaya yang terjangkau?

D. TUJUAN PROGRAM
Tujuan yang hendak dicapai dengan adanya program kewirausahaan ini, diantaranya yaitu:
1. Membuat sirup kersen sebagai alternatif obat asam urat yang aman dalam rangka menumbuhkan kreatifitas berwirausaha dengan menciptakan peluang bisnis yang berorientasi pada profit.
2. Memanfaatkan kersen sebagai alternatif minuman kesehatan (berbentuk sirup) yang dapat dikonsumsi oleh masyarakat dengan biaya yang terjangkau.
E. LUARAN YANG DIHARAPKAN
Adapun luaran yang diharapkan dari program ini adalah:
1. Terciptanya produk sirup kersen sebagai alternatif obat herbal yang aman serta dapat dipasarkan dan dikonsumsi oleh masyarakat.
2. Terciptanya peluang usaha mandiri bergerak di sektor kesehatan yang mengacu pada bidang jasa penjualan jasa sirup kersen sebagai alternatif obat herbal yang aman.
3. Meningkatkan karya kreativitas inovatif dalam terciptanya peluang usaha baru bagi mahasiswa yang bermanfaat dan tepat guna bagi masyarakat.

F. KEGUNAAN PROGRAM
Kegunaan program kreativitas ini adalah:
1. Membantu masyarakat yang mengalami permasalahan dengan kesehatan. Diantaranya yaitu: sebagai obat sakit kepala, obat turun panas, obat radang, sebagai antiseptik dan obat untuk asam urat sehingga dengan alternatif sirup dapat dijadikan sebagai obat herbal yang aman bagi tubuh.
2. Meningkatkan kretivitas inovatif mahasiswa dalam menemukan hasil karya yang dapat dimanfaatkan sebagai peluang usaha.
3. Memberikan nilai jual pada tanaman kersen dengan menganekaragamkan olahan kersen yang salah satunya adalah berupa sirup sebagai alternatif obat asam urat yang aman.

G. GAMBARAN UMUM RENCANA USAHA
1. Prospek Sirup Kersen bagi Kesehatan Tubuh Manusia
Pemanfaatan kersen semakin berkembang, yang pada mulanya hanya sebagai peneduh jalan bahkan diabaikan karena buahnya hanya menjadi makanan burung dan codot. Seiring dengan perkembangan teknologi, kersen layak dikonsumsi karena banyak manfaat yang dapat diambil.
Untuk itu, diperlukan suatu gagasan dalam berwirausaha yang dapat bermanfaat di bidang kesehatan, dengan mengolah kersen menjadi sirup yang dapat dikonsumsi sebagai minuman kesehatan yang dapat mengobati asam urat, dan dapat menjadi salah satu alternatif pendapatan mahasiswa.
2. Kelebihan Sirup Kersen
Kelebihan sirup kersen di bidang kesehatan adalah sebagai berikut:
a. Dapat menyembuhkan berbagai macam penyakit.
b. Sebagai antiseptik dan pembunuh mikroba yang berbahaya.
c. Aman dikonsumsi karena tidak mengandung pengawet dan pemanis buatan.
d. Produk bertahan lama.
e. Harga terjangkau oleh semua lapisan masyarakat.
3. Keterkaitan dengan Produk Lain Termasuk Perolehan Bahan Baku
Produk-produk sirup yang telah ada pada umunya hanya memberikan rasa dan kesegaran saja saat meminumnya, dan itu tidak mempunyai kelebihan atau manfaat bagi kesehatan khususnya. Oleh karena itu produk sirup kersen ini nantinya dapat bermanfaat bagi masyarakat, khususnya untuk kesehatan tubuh manusia, karena terkait dengan khasiat yang dimiliki oleh kersen yaitu dapat mengobati asam urat.
Perolehan bahan baku kersen ini dapat ditemukan di pohon-pohon kersen di tepi jalan dan dari warga yang mempunyai pohon kersen. Lokasi perolehan bahan baku ini dekat dengan lokasi tempat usaha, jadi adanya ketersediaan bahan baku yang memadai dan menjamin keberlangsungan usaha sirup kersen.
4. Peluang Pasar
Seperti halnya dengan sirup-sirup pada umumnya yang banyak dijumpai, sirup kersen mempunyai kelebihan di banding sirup-sirup yang ada karena sirup kersen memiliki khasiat-khasiat yang sangat bermanfaat untuk tubuh dan dapat menyembuhkan penyakit asam urat.
Peluang pasar sirup kersen ini sangat baik bagi mahasiswa dalam jasa penjualan karena sirup ini berbentuk seperti sirup-sirup pada umumnya tetapi mempunyai kelebihan yang spesifik.
5. Media promosi yang akan digunakan
Untuk menunjang proses pemasaran, ada beberapa alternatif yang bisa digunakan untuk mempromosikan produk ini, sehingga lebih dikenal oleh masyarakat dan menjadi pilihan masyarakat dalam mengkonsumsi sirup kersen. Media promosi yang dilakukan berupa brosur, pamflet, internet, dari mulut ke mulut dan lain sebagainya.
6. Strategi pemasaran yang akan diterapkan
Strategi pemasaran yang akan digunakan dalam usaha pembuatan sirup kersen ini menggunakan analisis Marketing Mix (bauran pemasaran) 4 P yaitu mengenai kebijakan produk, harga, promosi dan distribusi.
a. Kebijakan Produk
Usaha ini bergerak dalam bidang jasa penjualan. Jenis jasa ini berupa sirup yang dapat dikonsumsi setiap hari. Dengan berbagai macam rasa yang dapat dinikmati sebagai minuman penyegar dan mempunyai manfaat yang lebih dibanding sirup biasa pada umumnya.
b. Kebijakan harga
Harga yang ditawarkan kepada konsumen yaitu per botol berisi 600 ml @ Rp 17.000,00



c. Kebijakan promosi
Untuk meningkatkan hasil penjualan sirup kersen ini maka perlu dilakukan promosi. Bentuk promosi ini diantaranya yaitu dengan menggunakan pamflet, brosur, internet dan media promosi lainnya. Sistem penjualan yang dilakukan yaitu penjualan secara tunai.
d. Kebijakan distribusi
Distribusi hasil produksi kepada para konsumen dilakukan secara langsung di tempat usaha maupun secara tidak langsung yaitu penyetoran ke minimarket, pasar, toko-toko dengan menawarkan kerjasama dengan masyarakat. Selain itu dapat juga membuka toko sendiri.
7. Analisis Produk/Operasi
a. Bahan baku,bahan penolong dan peralatan yang digunakan
1) Bahan baku dan bahan penolong
Bahan baku yang digunakan dalam pembuatan sirup kersen ini adalah daging buah kersen, air, gula, essen dan asam sitrat.
2) Peralatan
Jenis peralatan dan perlengkapan yang digunakan dalam pembuatan sirup kersen ini antara lain:
 Peralatan
a) Kompor
b) Panci
c) Baskom
d) Timbangan
e) Blender
f) Pengaduk
g) Penyaring
h) Corong
i) Ember
j) Gelas Ukur



 Perlengkapan
a) Botol, tutup, karet perapat sirup
b) Label
c) Sewa tempat usaha

b. Proses produksi atau operasi
Proses produksi “Sirup Kersen” yaitu sebagai berikut:
• Pilih bahan baku yang baik dan segar.
• Cuci kersen dengan air bersih
• Hancurkan daging kersen dengan blender
• Saring sari kersen dan ambil airnya
• Sari kersen dan gula dicampur kemudian dipanaskan selama 30 menit
• Campuran tersebut harus diaduk-aduk hingga tercampur rata
• Tambahkan essen dan asam sitrat setelah campuran tersebut dingin
• Tahap akhir pengemasan ke dalam botol sirup.
Adapun proses produksi pembuatan sirup kersen dapat dilihat pada Lampiran.
H. METODE PELAKSANAAN PROGRAM
Pelaksanaan program usaha pembuatan sirup kersen sebagai minuman kesehatan ini terdiri dari tiga tahap yaitu: persiapan produksi, produksi sirup kersen dan pemasaran sirup kersen.
1. Persiapan produksi
Sebelum memproduksi sirup Muntingia, langkah awal yang perlu dilakukan adalah persiapan produksi. Dalam persiapan produksi ini terdapat dua kegiatan utama yaitu persiapan alat dan persiapan bahan.
Persiapan alat yaitu dengan pencucian alat-alat produksi dan penyeteliran botol. Persiapan bahan yaitu dengan pencucian kersen dengan air bersih.
2. Tahap produksi Sirup Kersen
Tahapan produksi sirup kersen ini adalah sebagai berikut:
a. Pembuatan Sari Kersen
Cuci daging dengan air bersih, kemudian hancurkan dengan cara diblender. Setelah itu saring dan didapati sari kersen.
b. Pemasakan
• Sari kersen dan gula dicampur menjadi satu, diaduk sampai gula dan sari kersen tercampur. Setelah tercampur dipanaskan selama 30 menit dengan suhu 100oC diaduk terus menerus sampai mendidih.
• Asam sitrat dan pewarna makanan dimasukkan dan diaduk supaya tercampur rata.
• Apabila tedapat busa, maka busa tersebut harus dihilangkan dengan sendok kemudian disaring.
( Gambar Diagram Proses Produksi terlampir)
3. Pengemasan
Produk sirup kersen dikemas dalam botol bening tebal, ditutup, diberi karet perapat tutup dan diberi label.
4. Promosi
Bentuk promosi sirup kersen ini diantaranya yaitu dengan menggunakan pamflet, brosur, internet dan media promosi lainnya.
5. Kerjasama dengan Industri
Kerjasama dilakukan dengan minimarket dan toko – toko di sekitarnya maupun di wilayah lain yang mempunyai potensi penjualan sebagai pusat– pusat pemasaran.
6. Pemasaran
Setelah proses produksi selesai, maka langkah selanjutnya adalah pemasaran. Target konsumen dari produk ini adalah masyarakat dari berbagai kalangan, baik masyarakat ekonomi atas maupun menengah ke bawah karena harganya yang relatif terjangkau.
7. Evaluasi
Evaluasi dilakukan untuk mengetahui tingkat daya beli masyarakat terhadap produk yang dihasilkan, mengevaluasi komentar-komentar konsumen terhadap produksi sesuai dengan selera konsumen.
8. Penyusunan Laporan
Laporan disusun setelah pelaksanaan seluruh program selesai dilaksanakan.

I. JADWAL KEGIATAN PROGRAM
Kegiatan ini dilaksanakan selama lima bulan

J. NAMA DAN BIODATA KETUA SERTA ANGGOTA KELOMPOK
1. Ketua Pelaksana
Nama : Ratri Rahayu
N I M : 4101408041
Fakultas/Program Studi : FMIPA/Pendidikan Matematika, S1
Perguruan tinggi : Universitas Negeri Semarang ( UNNES)
Waktu untuk kegiatan PKM : 4 jam/ minggu


2. Anggota
Anggota I
Nama : Defri Restian Yulistiono
N I M : 4301408010
Fakultas/Program Studi : FMIPA/Pendidikan Kimia, S1
Perguruan tinggi : Universitas Negeri Semarang ( UNNES)
Waktu untuk kegiatan PKM : 3 jam/minggu

Anggota II
Nama : Dian Kurnia Febriyani
N I M : 4401409027
Fakultas/Program Studi : FMIPA/Pendidikan Biologi, S1
Perguruan tinggi : Universitas Negeri Semarang ( UNNES)
Waktu untuk kegiatan PKM : 3 jam / minggu

K. NAMA DAN BIODATA DOSEN PENDAMPING
1. Nama : Walid, S.Pd, M.Pd
2. Golongan Pangkat& NIP : III C
3. Jabatan Fungsional : Lektor
4. Jabatan Struktural : -
5. Fakultas : MIPA
6. Perguruan tinggi : Universitas Negeri Semarang ( UNNES)
7. Bidang Keahlian : Statistika
8. Waktu Untuk Kegiatan PKM : 2 jam / minggu

M. LAMPIRAN
LAMPIRAN I
Daftar Riwayat Hidup Ketua dan Anggota Pelaksana

Daftar Riwayat Hidup Ketua Pelaksana
Nama : Ratri Rahayu
TTL : Kudus, 18 Januari 1990
Alamat : Margoyoso Rt 03/I Kalinyamatan Jepara
Email : ratri_smile@yahoo.co.id
No. Telp/HP : 085740831948
NIM : 4101408041
Fakultas/Program Studi : MIPA/Pendidikan Matematika, S1
Semester : III (Tiga)
Riwayat Pendidikan :
SD : SDN 1 Margoyoso
SLTP : SLTPN 1 Pecangaan
SMA : SMAN 1 Kudus
Perguruan Tinggi : Unnes


Daftar Riwayat Hidup Anggota
Nama : Defri Restian Yulistiono
TTL : Jepara, 17 September 1989
Alamat : Margoyoso Rt 08/III Kalinyamatan Jepara
Email : d_freexxx@yahoo.co.id
No. Telp/HP : 08995833418
NIM : 4301408010
Fakultas/Program Studi : MIPA/Pendidikan Kimia, S1
Semester : III (Tiga)
Riwayat Pendidikan :
SD : SDN 3 Margoyoso
SLTP : SLTPN 1 Pecangaan
SMA : SMAN 1 Kudus
Perguruan Tinggi : Unnes


Daftar Riwayat Hidup Anggota

Nama : Dian Kurnia Febriyani
TTL : Kudus, 13 Februari 1991
Alamat : Tenggeles Rt 01/V Mejobo Kudus
Email : dkf.denayu@yahoo.co.id
No. Telp/HP : 085725785626
NIM : 4401409027
Fakultas/Program Studi : FMIPA/Pendidikan Biologi, S1
Semester : I (Satu)
Riwayat Pendidikan :
SD : SDN 3 Ngembalrejo
SLTP : SLTPN 1 Jekulo
SMA : SMAN 1 Kudus
Perguruan Tinggi : Unnes


LAMPIRAN III
TEMPAT USAHA

1. Nama dan Alamat Produksi
Nama usaha sirup kersen adalah “Sirup Kersen Penyembuh Asam Urat” yang beralamat di Sekaran UNNES tepatnya di sebelah gedung FMIPA UNNES Sekaran Gunung Pati Semarang 51229.

Minggu, 13 Desember 2009

BAHASA PEMROGRAMAN

BAHASA PEMROGRAMAN KOMPUTER

Komputer hanya mempunyai bahasa dasar yang berupaya bahasa mesin. Bahasa mesin adalah bahasa yang mengenal kode biner, yaitu kode yang berisi angka 1 dan 0 saja. Pada dasarnya ada dua golongan bahasa pemrograman komputer, yaitu:
Bahasa pemrograman beraras rendah (low level language).
Bahasa pemrograman beraras tinggi (high level language).

Langkah-Langkah dalam Pemrograman


Tahap pada penulisan program adalah sebagai berikut:
1.Menulis program.
2.Menjalankan program untuk menguji kebenaran program.
Jika ada kesalahan (logika maupun kaidah), program diperbaiki dan kembali ke langkah 2.

Tipe-Tipe Data

1.Integer/ Bilangan bulat
-Terdiri dari ragkaian angka/digit 0 sampai 9.
-Penulisan bilangan bulat negative diawali dengan symbol minus.
2.Real

-Terdiri dari rangkaian digit 0 sampai 9, dilengkapi dengan satu buah titik desimal -diantara rangkaian digit tersebut.
-Penulisan bilangan real negative diawali dengan symbol minus.
-Notasi penulisan: fixed point dan floating point.

3.String / Charakter
-Terdiri dari satu / beberapa rangkain karakter / symbol.
-Penulisan dengan diapit tanda petik tunggal.
-Simbol-simbol yang dapat digunakan diatur label kode ASCII/EBDIC.

4.Boolean / Logikal
-Hanya bernilai true atau false.
-Umumnya diperoleh dari operasi pembandingan dua nilai. Contohnya pernyataan benar salah pada logika.

Sabtu, 12 Desember 2009

FUNGSI/FUNCTION

FUNGSI

- Semua fungsi mempunyai sifat memberikan nilai (disebut hasil fungsi) pada saat dipanggil.
- Contoh penggunaan fungsi yang benar adalah sebagai berikut:

X:=sqrt(100)
Sqrt berkedudukan sebagai operand dari operator penugasan (:=).

- Suatu fungsi umumnya mempunyai argument atau parameter. Parameter ditulis di dalam tanda kurung. Namun fungsi bisa saja tidak memiliki parameter, contohnya dalah pi dan random.

-Bentuk deklarasinya adalah sebagai berikut:

FUNCTION nama_fungsi (daftar_parameter):Tipe;
Bagian_deklarasi
Bagian_pernyataan;

Contoh judul deklarasi judul fungsi:

FUNCTION Tambah (A:real; B:real):Real;
Contoh ini menunjukkan bahwa fungsi tambah mempunyai dua buah parameter yang masing-masing bertipe real. Selain itu, hasil fungsi juga bertipe real.

Parameter Formal dan Aktual, Variabel Lokal dan Global

Parameter formal (terdapat pada subprogram): parameter yang terdapat pada pendeklarasian judul subprogram, baik pada fungsi maupun prosedur.

Contoh: FUNCTION Tambah (A, B:Real)
A, B merupakan parameter formal.

Parameter aktual (terdapat pada program utama): parameter yang terdapat pada pemanggilan fungsi atau prosedur.
Contoh: Tambah (10,30)
10 dan 30 merupakan parameter aktual.

1. Program penjumlahan bilangan 10 dan 30!

Program Fungsi;
uses wincrt;
var x,y:integer;
FUNCTION Tambah (A,B:real):real;
var
Hasil:real;
begin
Hasil:=A+B;
Tambah:=Hasil;
end;
begin
clrscr;
writeln (Tambah(10,30):1);
end.


2. Program penjumlahan dua bilangan

Program Fungsi;
uses wincrt;
var x,y:integer;
FUNCTION Tambah (A,B:real):real;
var
Hasil:real;
begin
Hasil:=A+B;
Tambah:=Hasil;
end;
begin
write('masukkan nilai x = ');readln (x);
write('masukkan nilai y = ');readln (y);
writeln (Tambah(x,y):1);
end.

3. Program tukar bilangan

Program Tukar;
uses wincrt;
FUNCTION Tukar_nilai(a,b,c:integer):integer;
{a,b,c adalah parameter,
parameter = var yg dipanggil ketika pemanggilan fungsi}
var
temp:integer;
{temp adalah var dalam fungsi,bukan parameter}
begin
temp:=A;
A:=C;
C:=temp;

writeln('a:',a);
writeln('b:',b);
writeln('c:',c);
end;

var a,b,c:integer;
begin
a:=100;
b:=200;
c:=300;
writeln('Nilai sebelum ditukar');
writeln('A:',a);
writeln('B:',b);
writeln('C:',c);
writeln('nilai sesudah ditukar');
Tukar_nilai(a,b,c);
end.

4. Program kuadrat suatu bilangan

Program procedur1;
uses wincrt;
procedure kuadrat;
var
x,y:real;
begin
write ('nilai x = ');readln(x);
y:=x*x;
writeln ('nilai y =',y:6:2);
end;
begin
kuadrat;
end.

REPETATION/LOOPING/PERULANGAN

PERULANGAN/LOPPING/REPETION

Dalam membuat suatu program kadang-kadang diinginkan agar program tersebut mampu memproses halyang sama secara berulang-ulang sampai ditemukan suatau nilai tertentu yang telah ditentukan. untuk itu maka Turbo Pascal telah menyediakan suatu struktur perulangan yang memudahkan untuk melakukan proses tersebut sehingga kode-kode dalam program menjadi lebih sederhana.
• Dalam bahasa Pascal ada 3 macam perulangan:
o For
o While - do
o Repeat - until
1. Struktur For
Di dalam suatu blok, digunakan untuk pengulangan sesuai dengan counter
Berbentuk :
o Perulangan Positif/Ascendant/Naik
o Perulangan Negatif /Descendant/Turun
o Perulangan Bersarang

Perulangan Positif / Ascendant / Naik
Menggunakan counter dari kecil ke besar
Pertambahan positif
Statemen : For . . . to . . . Do . . .
Syntax :
For variabel_kontrol := nilai_awal to
nilai_akhir Do statemen
(variabel kontrol harus integer)

Perulangan Negatif/Descendant/Turun
Pencacah dari besar ke kecil, pertambahan negatif
Dapat menggunakan :
For Var_kontrol := nilai_awal DownTo nilai_akhir Do statemen
Struktur For hanya dapat digunakan pada cacah perulangan yang diketahui (berapa kali perulangan tersebut dilakukan).
Contoh:


Program latihan_for_positif;
Uses wincrt;
Var N,I,j:integer;
Begin
Clrscr;
Write(‘Masukkan angka= ‘);
Readln(N);
For i:=1 to N do
Begin
For j:=1 do
Write(i:3);
Writeln;
End;
Readln;
End.

Hasil run program:
Masukkan angka=5
1
2 2
3 3 3
4 4 4 4
5 5 5 5 5

Program latihan_for_negatif;
Uses wincrt;
Var N,I,j,data:integer;
Begin
Clrscr;
Write(‘Masukkan angka= ‘);
Readln(N);
data:=N;
For i:=1 to N do
Begin
For j:=1 to N do
Write(data:3);
Writeln;
data:data-1;
End;
End.

Hasil run program:
Masukkan angka=5
5
4 4
3 3 3
2 2 2 2
1 1 1 1 1


Program ulang;
uses wincrt;
var
n:integer;
begin
write('kata akan diulang berapa kali : ');
readln(n);
for n:=1 to n do
writeln(' ',n,'. wetengku ngeleh!!!!!!');
end.

Program ulang_for_do;
Uses wincrt;
Var z:integer;
Begin
For z:=1 to 5 do
Writeln (z, ‘. Pemrograman Komputer’);
End.

Hasil program:
1.Pemrograman Komputer
2.Pemrograman Komputer
3.Pemrograman Komputer
4.Pemrograman Komputer
5.Pemrograman Komputer

2. Struktur While…Do.
Format: while (kondisi) do Aksi/blok aksi
Kondisi: Ekspresi Boolean
Pengecekan untuk melakukan pengulangan dilakukan pada awal proses dan perulangan akan dikerjakan selama kondisi benar. Oleh karena itu, perlu adanya suatu proses yang dapat mengontrol kondisi agar dapat menghentikan proses.
Struktur perulangan while do dapat digunakan untuk melakukan perulangan baik yang diketahi maupun yang tidak diketahui jumlah perulangannya.
Contoh:
Program ulang_whiledo;
Uses wincrt;
Var z:integer;
Begin
Z:=0;
While (z<4) do
Begin
Writeln (z, ‘. Pemrograman Komputer’);
Z:=z+1;
End;
End.

Hasil program:
1.Pemrograman Komputer
2.Pemrograman Komputer
3.Pemrograman Komputer
4.Pemrograman Komputer
5.Pemrograman Komputer

3. Struktur Repeat…Until…
Format : Repeat aksi/blok aksi until (kondisi);
(kondisi) di sini berupa boolean.
Perulangan dilakukan terus-menerus hingga diperoleh kondisi bernilai benar. Dalam hal ini pun diperlukan adanya kondisi yang dapat mengontrol program agar program dapat berhenti akan tetapi berbeda dengan while do yang kontrolnya ditempatkan pada awal proses, maka repeat until kontrolnya diletakkan pada akhir proses.
Pada perulangan yang menggunakan repeat until, proses pembacaan program dilaksanakan paling tidak satu kali karena proses pengecekan syarat dilakukan pada akhir.
Contoh :
Program ulang_repeatuntil;
Uses wincrt;
Var z:integer;
Begin
Z:=1;
repeat
Writeln (z, ‘. Pemrograman Komputer’);
Z:=z+1;
Until z>5
End.

Hasil program:
1.Pemrograman Komputer
2.Pemrograman Komputer
3.Pemrograman Komputer
4.Pemrograman Komputer
5.Pemrograman Komputer
Contoh:
Program penjumlahan_bilangan;
uses wincrt;
var x,y,jmlh:integer;
begin
x:=1;
jmlh:=0;
write('masukkan nilai suatu bilangan: ');readln(y);
repeat
write (x);
if x write ('+');
jmlh:=jmlh+x;
x:=x+1;
until x>y;
write('=');
write(jmlh);
end.

Hasil program:
masukkan suatu bilangan: 4
1+2+3+4=10

Rabu, 09 Desember 2009

ALGORITMA DAN FLOWCHART

Algoritma dan Flowchart

Pendahuluan

Beberapa langkah dalam proses pembuatan suatu program atau software :

1. Mendefinisikan masalah dan menganalisanya
Langkah awal yang harus dilakukan adalah mengidentifikasikan masalah antara lain tujuan dari pembuatan program, parameter-parameter yang digunakan, fasilitas apa saja yang akan disediakan oleh program. Kemudian menentukan metode atau algoritma apa yang akan diterapkan untuk menyelesaikan masalah tersebut dan terakhir menentukan bahasa program yang digunakan untuk pembuatan program.

2. Merealisasikan dengan langkah-langkah berikut :




Secara umum, struktur suatu program terdiri dari beberapa bagian yaitu :

1. Input
Bagian ini merupakan proses untuk memasukkan data ke komputer melalui device yang ada misalnya keyboard, mouse, scanner dll.
Program melakukan proses membaca data yang akan diolah dari device tersebut.

2. Output
Bagian ini merupakan proses untuk menampilkan data yang telah diolah, melaporkan hasil pegolahan data melalui device seperti monitor, printer dll. Program melakukan proses mencetak data ke device tersebut.

3. Proses Pengolahan Data
Bagian ini merupakan proses mengolah data yang diinputkan dengan nenerapkan metode-metode, teknik-teknik, algoritma-algoritma yang ada. Proses ini menghasilkan data output yang akan dioutputkan kepada pengguna program.

4. Penyimpanan Data
Bagian ini merupakan proses menyimpan data dalam memori atau device penyimpanan data seperti disket, harddisk, CD dll.

Berikut ini adalah blok diagram struktur dari suatu program secara umum.




ALGORITMA

Definisi:
Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis.
System flowchart adalah urutan proses dalam system dengan menunjukkan alat media input, output serta jenis media penyimpanan dalam proses pengolahan data.
Program flowchart adalah suatu bagan dengan simbol-simbol tertentu yang menggambarkan urutan proses secara mendetail dan hubungan antara suatu proses (instruksi) dengan proses lainnya dalam suatu program
Pada umumnya algoritma kurang lebih sama dengan suatu prosedur yang sering dilakukan setiap hari, misalnya prosedur untuk mengganti ban bocor/pecah, prosedur pemakaian telepon umum, prosedur membuat kue dan lain-lain.
Langkah-langkah tersebut harus logis, ini berarti nilai kebenarannya harus dapat ditentukan, benar atau salah, karena langkah-langkah yang tidak benar dapat memberikan hasil yang salah.
Contoh Algoritma 1
Mengirim surat kepada teman:
1. Tulis surat pada secarik kertas surat.
2. Ambil sampul surat.
3. Masukkan surat kedalam sampul.
4. Tutup sampul surat menggunakan perekat.
5. Jika kita ingat alamat teman tersebut, maka tulis alamat pada sampul surat.
6. Jika tidak ingat, lihat buku alamat, kemudian tulis alamat pada sampul surat.
7. Tempel perangko pada surat.
8. Bawa surat ke kantor pos untuk di poskan.
Ciri-ciri algoritma
1. Algoritma harus berhenti setelah mengerjakan sejumlah langkah-langkah terbatas.
2. Setiap langkah harus didefinisikan dengan jelas dan tidak berarti dua (ambiguous).
3. Memiliki nol atau lebih masukan (input)
4. Memiliki nol atau lebih keluaran (output)
5. Setiap langkah dapat dikerjakan dalam waktu yang masuk akal.
Program adalah realisasi algoritma dalam bahasa pemrograman, program ditulis dalam salah satu bahasa pemrograman. Algoritma memegang peranan penting dalam bidang pemrograman. Sebegitu pentingnya suatu algoritma, sehingga perlu dipahami konsep dasar algoritma. Apalagi untuk seorang programer, tentu diperlukan suatu algoritma sehingga dapat membuat program yang lebih efektif dan efisien. Bagi kebanyakan orang, algoritma sangatmembantu dalam memahami konsep logika pemrograman.
Dalam bidang komputer, misalnya EDP (Elektronik Data Processing) atau MIS (Management Information System), algoritma sering dimanfaatkan untuk menyelesaikan suatu masalah atau untuk proses pengambilan keputusan. Seorang sistem analisis (analisist system) tentunya menggunakan algoritma untuk merancang suatu sistem. Bagi seorang programer, algoritma digunakan untuk membuat modul-modul program. Guna memahami suatu algoritma, harus dimiliki pengetahuan dasar matematika karena pada dasarnya algoritma lahir dari konsep logika matematika. Disini yang perlu dilatih adalah kemampuan logikanya agar benar-benar bisa menyusun langkah-langkah penyelesaian masalah dengan baik.

Pedoman-pedoman dalam membuat flowchart
Jika seorang analis dan programmer akan membuat flowchart, ada beberapa petunjuk yang harus diperhatikan, seperti :
1. Flowchart digambarkan dari halaman atas ke bawah dan dari kiri ke kanan.
2. Aktivitas yang digambarkan harus didefinisikan secara hati-hati dan definisi ini harus dapat dimengerti oleh pembacanya.
3. Kapan aktivitas dimulai dan berakhir harus ditentukan secara jelas.
4. Setiap langkah dari aktivitas harus diuraikan dengan menggunakan deskripsi kata kerja, misalkan Melakukan penggandaan diri.
5. Setiap langkah dari aktivitas harus berada pada urutan yang benar.
6. Lingkup dan range dari aktifitas yang sedang digambarkan harus ditelusuri dengan hati-hati. Percabangan-percabangan yang memotong aktivitas yang sedang digambarkan tidak perlu digambarkan pada flowchart yang sama. Simbol konektor harus digunakan dan percabangannya diletakan pada halaman yang terpisah atau hilangkan seluruhnya bila percabangannya tidak berkaitan dengan sistem.
7. Gunakan simbol-simbol flowchart yang standar.

Sampai sekarang terdapat banyak sekali bahasa pemrograman, berdasarkan terapannya bahasa pemrograman digolongkan dua kelompok;
1. Bahasa pemrograman bertujuan khusus, yang termasuk kelompok ini adalah Cobol (untuk terapan bisniS dan administrasi), Fortran (terapan komputasi ilmiah), prolog (terapan kecerdasan buatan).
2. Bahasa pemrograman bertujuan umum, yang dapat digunakan dalam berbagai aplikasi, contoh pascal, basic, c, c++.

Tahapan pelaksanaan program oleh komputer

Tahap-tahap penyusunan algoritma seringkali dimulai dari langkah yang global lebih dahulu, baru kemudian diperhalus dengan langkah-langkah yang lebih rinci.

Contoh : Buat algoritma untuk menentukan apakah suatu bilangan merupakan bilangan ganjil atau bilangan genap.
Algoritmanya :
1. Bagi bilangan dengan bilangan 2
2. Hitung sisa hasil bagi pada langkah 1.
3. Bila sisa hasil bagi sama dengan 0 maka bilangan itu adalah bilangan genap tetapi bila sisa hasil bagi sama dengan 1 maka bilangan itu adalah bilangan ganjil.


FLOWCHART
Flowchart adalah gambaran dalam bentuk diagram alir dari algoritma-algoritma dalam suatu program, yang menyatakan arah alur program tersebut.
Berikut adalah beberapa simbol yang digunakan dalam menggambar suatu flowchart :




Dari contoh algoritma di atas tentang menentukan apakah suatu bilangan adalah bilangan ganjil atau bilangan genap, flowchart dari program adalah sebagai berikut :




Untuk membuat flowchart banyak sekali aplikasi yang dapat digunakan, dari aplikasi yang offline maupun online. semua diciptakan dan disediakan untuk mempermudah dalam pembuatan flowchart. Dengan menggunakan microsoft word misalkan, kita sudah dapat memakainya tetapi kadang keterbatasan tools sehingga kita mengalami kesulitan. Alplikasi lain misalnya visio, merupakan salah satu aplikasi offline yang dapat digunakan, Aplikasi secara online salah satunya adalah Lovelychart. Software secara online ini menyediakan kemudahan untuk membuat flowchart.

LOVELY CHART
Lovelycharts menyediakan kemudahan untuk membuat berbagai diagram proses seperti design & Modeling, Flowchart, UML, ERD, DFD, Mind Map dsb. online dan gratis tentu saja menjadi kelebihan untuk menggunakan fitur layanannya. aplikasi yang memungkinkan Anda untuk membuat diagram dan berbagai design konsep di browser Anda dengan fugsi drag dan drop ini dapat dijalankan hanya melalui browser. dilengkapi dengan fitur standard object diagram, alignment object, export, import, memperbesar object, konektor dan berbagai fitur lainnya cukup membantu untuk membuat berbagai design kompleks layaknya visio dan tools desktop diagram designer lainnya.
LovelyCharts dibuat oleh pengembang dan pengguna Ria arsitek Jerome Cordiez dari This Is Lovely!.selain itu Terdapat juga versi profesional LovelyCharts dengan biaya € 29 untuk satu tahun, yang memungkinkan pengguna untuk memelihara dan berkolaborasi didalam menyimpan dan memanage berbagai history diagram yang telah dibuat.
www.lovelycharts.com
Contoh membuat flowchart dengan menggunakan lovelycharts.com



Soal Latihan

1. Buat algoritma untuk menentukan apakah suatu bilangan merupakan bilangan prima atau bukan, kemudian buat flowchart untuk program tersebut !
2. Buat algoritma untuk mencetak N buah bilangan prima yang pertama, kemudian buat flowchart untuk program tersebut !
3. Buat algoritma untuk menentukan jenis akar dari suatu persamaan kuadrat, kemudian buat flowchart untuk program tersebut !
4. Buat algoritma untuk menghitung jumlah N suku dari deret aritmatika berikut :
Sn = 3 + 7 + 11 + …… + (4n-1)
5. Buat algoritma untuk menghitung nilai faktorial dari suatu bilangan, kemudian buat flowchart untuk program tersebut !
6. Buat flowchart untuk mencetak pasangan nilai X dan Y dimana hubungan antara X dan Y memenuhi persamaan Y = X3 – 2X +1 dan nilai x berubah dari –10 sampai 10 !
PROCEDURE

Prosedur adalah suatu program terpisah dalam blok sendiri yang berfungsi sebagai subprogram (program bagian). Diawali dengan kata cadangan “Procedure” didalam bagian deklarasi prosedur. Prosedur banyak digunakan pada program yang terstruktur karena :
- merupakan penerapan konsep program modular, yaitu memecah-mecah program yang rumit menjadi program-program bagian yang lebih sederhana dalam bentuk prosedur-prosedur.
- Untuk hal-hal yang sering dilakukan berulang-ulang, cukup dituliskan sekali saja dalam prosedur dan dapat dipanggil atau dipergunakan sewaktu-waktu bila diperlukan.

Bentuk Umum :

PROGRAM judul_program ;
PROCEDURE judul_prosedur ;
Begin
Statement prosedur ;



End ;
Begin
Statement program utama ;



end.

1.1 Parameter Dalam Prosedur
Nilai didalam modul program Pascal sifatnya adalah local, artinya hanya dapat digunakan pada modul atau unit program yang bersangkutan saja, tidak dapat digunakan pada modul atau unit program yang lainnya.

Contoh program :
Procedure Tanya_hitung ;
Var
X, Y : real ;
Begin
Write (‘Nilai X =’) ;
Readln (X) ;
Y : = X * X ;
End ;
Begin
Tanya_hitung ;
Writeln (‘Nilai Y =’, Y : 6 : 2 ) ;
End.

Keterangan contoh program :
Bila program dikompilasi, akan di deteksi kesalahan oleh compiler, karena variable Y yang sifatnya local di procedure Tanya_hitung digunakan pada program utama.
Agar nilai-nilai variable dapat digunakan di modul lainnya yang membutuhkan, maka dapat dilakukan dengan beberapa cara, yaitu :
- Dibuat bersifat global.
Harus di deklarasikan diatas modul yang akan menggunakannya.
Contoh :

• Procedure kesatu ;
Begin

End ;
Var
A, B : word ;
• Procedure kedua ;
Begin

End ;
• Procedure ketiga ;
Begin

End ;
Begin { program utama }

End.

Keterangan contoh :
Variabel A dan B dapat digunakan untuk modul Procedure kedua dan ketiga serta modul/program utama, tetapi tidak bersifat global untuk procedure kesatu.
- Dikirimkan sebagai parameter ke modul yang membutuhkannya.
Parameter yang dikirmkan dari modul utama ke modul prosedur disebut dengan parameter nyata (actual parameter) dan parameter yang ada dan dituliskan pada judul prosedur disebut dengan parameter formal (formal parameter). Proses pengiriman data lewat parameter nyata ke parameter formal disebut dengan parameter passing. Parameter nyata dan parameter formal harus dengan tipe yang sama. Didalam pascal, parameter dapat dikirimkan secara nilai (by value) atau secara acuan (by reference).




1.1.1 Pengiriman Parameter Secara Nilai

Bila parameter dikirimkan secara nilai nilai, parameter formal di prosedur akan berisi nilai yang dikirmkan yang kemudian bersifat local di prosedur. Bila nilai parameter formal di prosedur berubah, tidak akan mempengaruhi nilai parameter nyata ( nilai parameter nyata tetap, tidak berubah). Pengiriman secara nilai ini merupakan pengiriman searah, yaitu dari parameter nyata ke parameter formal, yang tidak dikirimkan balik dari parameter formal ke parameter nyata.
Parameter – parameter yang digunakan dengan pengiriman secara nilai ini disebut dengan parameter nilai ( value parameter ).

Contoh program :

Procedure Hitung(A, B : integer ) ;
Var
C : integer ;
Begin
C : = A + B ;
Writeln (‘Nilai C =’, C ) ;
End ;
Var
X, Y : integer ;
Begin
Write ( ‘Nilai X =’ ) ; readln ( X ) ;
Write ( ‘Nilai Y =’ ) ; readln ( Y ) ;
Hitung ( X, Y ) ;
End.

Output program :
Nilai X = 2
Nilai Y = 3
Nilai C = 5

Penjelasan program :
- prosedur dimulai dengan deklarasi prosedur dengan judul prosedur hitung. Variable A dan B adalah parameter formal dan integer adalah tipe parameternya.
- Variable local yang hanya dipergunakan di prosedur dan tidak termasuk parameter formal (parameter nilai), harus didefinisikan sendiri, yaitu : variable C
- Hubungan antara parameter formal di prosedur dengan parameter nyata di modul utama adalah : nilai parameter nyata X dan Y di modul utama dikirimkan ke parameter formal A dan B di prosedur. Dengan demikian nilai parameter A dan B diprosedur akan berisi nilai yang sama dengan parameter X dan Y di modul utama.



1.1.2 Pengiriman Parameter Secara Acuan

Bila pengiriman parameter secara acuan, maka perubahan-perubahan yang terjadi pada nilai parameter formal di prosedur akan mempengaruhi nilai parameter nyata. Parameter-parameter ini disebut dengan variable parameter serta dideklarasikan di deklarasi prosedur dengan menggunakan kata cadangan Var, sebagai berikut :
PROCEDURE hitung (VAR A, B, C : integer ) ;

Contoh program :

Procedure Hitung ( var A, B, C : integer ) ;
Begin
C : = A + B ;
End ;
Var
X, Y, Z : integer ;
Begin
X : = 2 ; Y : = 3 ;
Hitung ( X, Y, Z ) ;
Writeln (‘ X = ‘, X , ‘ Y = ‘ , Y, ‘ Z = ‘ , Z ) ;
End.

Output program :
X = 2 Y = 3 Z = 5
Penjelasan program :
- pengiriman parameter secara acuan merupakan pengiriman dua arah, bolak-balik, sehingga perubahan nilai di parameter formal akan mempengaruhi nilai parameter nyata juga. Pada contoh, nilai parameter nyata Z akan mengikuti perubahan nilai dari parameter formal C.

1.1.3 Pengiriman Parameter Sebagian Secara Nilai, Sebagian Acuan
Pengiriman parameter dapat dicampur sebagian secara nilai dan sebagian secara acuan dalam suatu prosedur. Parameter yang hanya dibutuhkan pada prosedur saja dapat dikirimkan secara nilai dan yang ingin dikirimkan balik dapat dilakukan secara acuan, sebagai berikut :

PROCEDURE Hitung ( A, B : integer ; Var C : integer ) ;
Contoh program :
Procedure Hitung ( A, B : integer ; Var C ; integer ) ;
Begin
C : = A + B ;
End ;
Var
X, Y, Z : integer ;
Begin
X : = 2 ; Y : = 3 ;
Hitung ( X, Y, Z ) ;
Writeln ( ‘ X = ‘, X , ‘ Y = ‘, Y , ‘ Z = ‘, Z ) ;
End.
Output program :
X = 2 Y = 3 Z = 5

1.2 Prosedur Memanggil Prosedur Yang Lain
Prosedur dapat memanggil prosedur yang lainnya
.
Contoh program :
Procedure Pro1 ( X1 : integer ) ;
Begin
Writeln ( ‘Nilai X = ‘, X1, ‘ada di prosedur Pro1’ ) ;
End ;
Procedure Pro2 (X2 : integer ) ;
Begin
Writeln ( ‘Nilai X = ‘, X2, ‘ada diprosedur Pro2’ ) ;
Pro1 (X2) ;
End ;
Var
X : integer ;
Begin
X : = 5 ;
Pro2 ( X ) ;
End.
Output program :
Nilai X = 5 ada diprosedur Pro2
Nilai X = 5 ada diprosedur Pro1

1.3 Prosedur Tersarang
Adalah prosedur yang berada didalam prosedur yang lainnya.
Bentuk Umum :
Program
Procedure
Procedure
Begin



End ;
Begin



End ;
Begin



end .

1.4 Prosedur Memanggil Dirinya Sendiri
Merupakan prosedur yang memanggil atau menggunakan prosedur itu juga. Proses dari suatu program bagian yang memanggil dirinya sendiri dikenal dengan istilah recursion. Tidak semua bahasa menyediakan kemampuan untuk melakukan proses recursion, tetapi pascal dapat. Walaupun proses ini merupakan algoritma yang baik, tetapi membutuhkan banyak memori, karena setiap kali program bagian dipanggil oleh dirinya sendiri, sejumlah ruang memori tambahan dibutuhkannya

Rekursi yaitu procedure atau function yang memanggil dirinya sendiri. Gunanya untuk melakukan proses berulang yang sulit diketahui kapan akan berakhir. Banyak bahasa pemrograman modern mendukung proses rekursi, misalnya Turbo Pascal, Visual Basic, dll. Contoh paling terkenal dari rekursi adalah proses menghitung nilai faktorial dan mencari deret Fibonacci.

Contoh listing program:

function faktorial(n : integer):integer;
begin
if (n = 0) then faktorial := 1
else faktorial := n * faktorial(n - 1);
end;

Deret Fibonacci didefinisikan sebagai deret integer tak berhingga, di mana suatu bilangan adalah penjumlahan dari dua bilangan sebelumnya.
Contoh: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ...
Dari data di atas dapat difahami bahwa angka 5 merupakan hasil penjumlahan dari 2 dan 3, sedangkan 12 merupakan 5 + 8.

function fibonacci(n : integer):integer;
begin
if (n = 1) or (n = 2) then fibonacci := 1
else fibonacci := fibonacci(n - 1) + fibonacci(n - 2);
end;

Sebagian mahasiswa sulit membedakan antara Rekursi dan Iterasi, karena keduanya melakukan perulangan yang jumlah perulangannya sulit ditentukan kapan berakhir. Padahal secara mudah didefinisikan: Rekursi yaitu prosedur atau fungsi yang memanggil dirinya sendiri, sedangkan Iterasi adalah proses perulangan dalam suatu prosedur atau fungsi.

Berikut ini adalah contoh yang paling mudah dipahami. Tujuannya mencetak tulisan "M" dari kiri ke kanan layar.
REKURSI

uses
wincrt;
procedure rekursi;
begin
if wherex < 80 then
begin
write('M');
rekursi;
end;
end;
begin
clrscr;
rekursi;
end.

ITERASI

uses
wincrt;
procedure iterasi;
begin
while wherex < 80 do
begin
write('M');
end;
end;
begin
clrscr;
iterasi;
end.

Dari dua program pendek di atas, anda tentu mendapatkan sebuah fakta baru, yaitu rekursi dapat melakukan perulangan tanpa bantuan FOR NEXT, WHILE DO, REPEAT UNTIL, dsb.

Contoh program :
Program Coba_rekursi;
Uses wincrt;
Var
I : integer ;
Procedure Rekursi ;
Begin
Writeln ( ‘Hallo saya Pascal ‘ ) ;
I : = I + 1 ;
If I < 10 Then
Rekursi ;
End ;
Begin
I : = 1 ;
Rekursi ;
End.

1.5 Acuan Forward
Digunakan untuk mendeklarasikan dimuka judul prosedur terpisah dari bloknya. Judul prosedur yang berisi parameter terpisah ini merupakan judul yang semestinya dan di deklarasikan dengan menambahkan kata cadangan “ Forward ”. Blok prosedur ini letaknya terpisah dari judulnya, juga diawali dengan judul prosedur, tetapi hanya mencantumkan judul atau nama prosedurnya saja, tanpa mencantumkan parameter formalnya.

Contoh program :
Procedure Pro1 (Var I : integer ) ; Forward ;
Procedure Pro2 (Var I : integer ) ;
Begin
Writeln ( ‘ Prosedur PRO’, I ) ;
End ;
Procedure Pro1 ;
Begin
Writeln ( ‘Prosedur PRO’, I ) ;
End ;
Var
I : integer ;
Begin
I : = 1 ;
Pro1 ( I ) ;
I : = 2 ;
Pro2 ( I ) ;
End.
Output :
Prosedur PRO1
Prosedur PRO2

1.6 Prosedur Standar

1.6.1 Prosedur Standar Exit
Digunakan untuk keluar dari suatu blok. Bila diletakkan pada program bagian, prosedur standar exit akan menyebabkan proses di program bagian berhenti dan proses kembali ke blok program yang memanggilnya. Bila berada di program utama, menyebabkan proses program berhenti
.
1.6.2 Prosedur Standar Halt
Digunakan untuk menghentikan proses program baik di program bagian maupun program utama.

1.6.3 Prosedur Standar Move
Bentuk umum :
Move ( var source, dest; count : word )
Digunakan untuk menyalinkan suatu blok sebanyak count byte memori dari blok dimulai byte pertama source dan disalinkan ke byte pertama dest.
Contoh program :
Var
Sumber, Tujuan : string [5] ;
Sejumlah : word ;
Begin
Sumber : = ‘ABCDE’ ;
Tujuan : = ‘FGHIJ’ ;
Sejumlah : = 4 ;
Move (Sumber, Tujuan, Sejumlah ) ;
Writeln (Sumber : 7, Tujuan : 7 ) ;
End.

Output program :
ABCDE ABCIJ

1.6.4 Prosedur Standar FillChar
Digunakan untuk mengisi sejumlah byte nilai ke dalam suatu variable, sbb :

FillChar ( x ; count : word ; ch )
X adalah variable yang dapat bertipe apapun yang akan diisi dengan nilai tipe ordinal ch sebanyak count byte.

ARRAY

ARRAY
Array adalah suatu tipe data terstruktur yang terdapat dalam memori yang terdiri dari sejumlah elemen (tempat) yang mempunyai tipe data yang sama, variabel yang sejenis, komponen yang jumlahnya tetap.
Komponen-komponen tersebut disebut sebagai komponen type, larik mempunyai jumlah komponen yang jumlahnya tetap. Banyaknya komponen dalam larik ditunjukkan oleh suatu index, dimana tiap komponen di array dapat diakses dengan menunjukkan nilai indexnya atau subskript. Array dapat bertipe data sederhana seperti byte, word, integer, real, bolean, char, string dan tipe data scalar atau subrange. Tipe larik mengartikan isi dari larik atau komponen- komponenya mempunyai nilai dengan tipe data tersebut.

Contoh:
Var
Untai : array[1..50] of Integer;
Pada contoh Array dengan nama untai telah dideklarasikan dengan tipe integer, dengan jumlah elemen maksimum 50 elemen, nilai dari elemen array tersebut diatas harus bertipe integer.

Contoh Program :
Program Contoh_Array_Input;
Uses Crt;
Var
Bilangan : array[1..50] of Integer;
Begin
ClrScr;
Bilangan[1]:=3;
Bilangan[2]:=29;
Bilangan[3]:=30;
Bilangan[4]:=31;
Bilangan[5]:=23;
Writeln('nilai varibel bilangan ke 3 =',Bilangan[3]);
Readln;
End.

Array juga dapat dideklarasikan bersama dengan tipe yang beragam seperti contoh dibawah ini :
Program Contoh_Deklarasi_Array_Beragam;
Uses Crt;
Var
NPM : array[1..20] of string[10];
Nama : array[1..20] of string[25];
Nilai : array[1..20] of real;
Umur : array[1..20] of byte;
banyak,i : integer;
Begin
ClrScr;
Write('Isi berapa data array yang diperlukan :');Readln(banyak);
For i := 1 to banyak Do
Begin
Write('NPM =');Readln(NPM[i]);
Write('Nama =');readln(Nama[i]);
Write('Nilai=');readln(Nilai[i]);
Write('Umur =');readln(Umur[i]);
End;
{cetak varibel array}
Writeln('NPM NAMA NILAI UMUR ');
For i:= 1 to banyak Do
Begin
Writeln(Npm[i]:10,Nama[i]:25,Nilai[i]:3:2,' ',Umur[i]:3);
End;
Readln;
End.

Untuk deklarasi array dapat digunakan beberapa cara seperti berikut ini :
Type
Angka = String[20];
Var
Nama : Array [1..50] of Angka;
Begin
.
.
End.

Deklarasi tipe indeks subrange integer Indeks pada array dapat tipe skalar atau subrange, tetapi tidak bisa real.
Contoh:
Var
Nilai : Array[1..10] of Integer;
pada contoh ini array nilai mempunyai 10 buah elemen yaitu dari 1 sampai 10. Array tersebut dapat dideklarasikan dengan type seperti berikut ini :

Type
Skala = 1..10;
Var
Nilai : Array [skala] of Integer;
atau :
Type
Skala = 1..10;
Y = Array[skala] of Integer;
Var
Nilai : Y;
atau :
Type
Y = Array[1..10] of Integer;
Var
Nilai : Y;
atau :
Const
Atas =1;
Bawah = 5;
type
Y = Array[Atas..Bawah] of Integer;
Var
Nilai : Y;

I. Deklarasi Type Indeks Skalar
Indeks dari larik dapat berupa tipe skalar.
Contoh. :
Program Deklarasi_Indeks_Array_Skalar;
Uses Crt;
Var
Jum : Array[(jan,feb,mar,apr,mei)] of Integer;
Begin
Jum[jan]:=25;
Jum[feb]:=45;
Jum[mar]:=21;
Jum[apr]:=23;
Jum[mei]:=50;
Writeln('Jumlah nilai bulan maret =',Jum[mar]);
Readln;
End.
dapat juga ditulis :
type
Bln = (jan,feb,mar,apr,mei);
Var
Jum : Array[bln] of Integer;
atau :
type
Bln =(jan,feb,mar,apr,mei);
Var
Jum : Array[jan..mei] of Integer;






II. Deklarasi Konstanta Array

Array tidak hanya dapat berupa suatu varibel yang dideklarasikan di bagian deklarasi variabel, tetapi dapat juga berupa konstanta (const).

Contoh Program :
Program Contoh_Deklarasi_Array_Konstan;
Uses Crt;
Const
Tetap : Array[1..4] of Integer=(7,10,21,20);
Var
i : Integer;
Begin
For i:= 1 to 4 Do
Writeln('Nilai Konstan array ke ',i:2,' =',Tetap[i]);
Readln;
End.
konstanta array dapat juga berupa ketetapan dalam bentuk karakter seperti berikut.
Contoh Program :
Program Contoh_Konstan_Array_Char_;
Uses Crt;
Const
Huruf : Array[0..5] of Char=('A','B','C','D','E','F');
Var
i : Integer;
Begin
For i:= 0 to 5 Do
Writeln('Nilai konstan array ke',i:2,' = ',Huruf[i]);
Readln;
End.
Konstanta array dapat juga berupa string seperti berikut ini.
Contoh Program :
Program Constanta_Array_String;
Uses Crt;
Type
A = Array [1..5] of String;
Const
Nama : A = ('basic','pascal','cobol','paradox','dbase');
Var
i : Integer;
Begin
For i:= 1 to 5 Do
Writeln('Nilai Array ke-',i:2,'= ',Nama[i]);
readln;
end.

Dalam pascal string merupakan array dari elemen- elemen karakter seperti berikut :
Contoh Program :
Program String_Adalah_Array_Tipe_Char;
Uses wincrt;
Var
Nama : string;
i : Integer;
Begin
Nama:='Turbo Pascal';
For i:= 1 to Length(nama) Do
Writeln('Elemen ',i,' dari ',Nama,'= ',Nama[i]);
Readln;
End.

contoh program bilangan prima dengan menggunakan bantuan array.
Contoh program :
Program Mencari_Bilangan_Prima_Dengan_Array;
Uses wincrt;
Var
Prima : Array[1..100] of Integer;
i,j : Integer;
bil : Integer;
Begin
ClrScr;
For i := 2 to 100 Do
Begin
Prima[i]:=i;
For j:= 2 to i-1 Do
Begin
bil := (i mod j); {* i dibagi j dicek apakah 0*}
If bil = 0 then Prima[i]:=0; {*jika habis dibagi,berarti bkn prima*}
End;
If Prima[i]<> 0 Then Write(Prima[i],' '); {*cetak array yg prima*}
End;
Readln;
End.

Contoh pengurutan data dengan metode buble sort, yaitu dengan cara penukaran, dapat dilihat pada contoh dibawah ini :
Contoh Program :
Program Penggunaan_Array_Untuk_Sortir_Buble_Sort;
Uses wincrt;
Var
nil1 : Array[1..100] of Integer;
n,i,j,dum : Integer;
Begin
ClrScr;
Write('mau isi berapa data acak (integer) ='); readln(n);
For i := 1 to n Do
Begin
Write('Data Ke ',i,':');Readln(nil1[i]);
End;
{* penyapuan proses}
for i:= 1 to n-1 do
begin
for j:= i to n do
begin
if nil1[j]
begin
dum:=nil1[j];
nil1[j]:=nil1[i];
nil1[i]:=dum;
end;
end;
end;
writeln;
writeln('Hasil Sortir');
for i := 1 to n do
write(nil1[i]:3);
readln;
end.



III. Array Dua Dimensi

Di dalam pascal Array dapat berdimensi lebih dari satu yang disebut dengan array dimensi banyak (Multidimensional array), disini akan dibahas array 2 dimensi saja. Array 2 dimensi dapat mewakili suatu bentuk tabel atau matrik, yaitu indeks pertama menunjukkan baris dan indeks ke dua menunjukkan kolom dari tabel atau matrik.
1 2
1 2 3
Untuk mengetahui cara mendeklarasikan dari penggunaan aray dua dimensi dapat dilihat pada listing program dibawah ini .

Contoh Program:
Program Deklarasi_Array_Dua_Dimensi;
Uses wincrt;
Var Tabel : Array[1..3,1..2] of Integer;
i,j : Integer;
Begin
ClrScr;
Tabel[1,1]:=1;
Tabel[1,2]:=2;
Tabel[2,1]:=3;
Tabel[2,2]:=4;
Tabel[3,1]:=5;
Tabel[3,2]:=6;
For I := 1 to 3 Do Begin For J:= 1 to 2 Do Begin Writeln('Elemen ',i,',',j,'= ',tabel[i,j]);
End;
End;
Readln;
End.


IV. Alternatif Deklarasi Array Dua Dimensi

Ada beberapa cara dalam mendeklarasikan array dua dimensi, beberapa cara tersebut dapat dilihat dibawah ini :
Contoh :
Var
Tabel : Array[1..3] of Array[1..2] of Byte;
atau :
Type
Matrik = Array[1..3,1..2] of Byte;
Var
Tabel : Matrik;
atau :
Type
Baris = 1..3;
Kolom = 1..2;
Matrik = Array[Baris,Kolom] of Byte;
Var
Tabel : Matrik;
atau :
Type
Baris = 1..3;
Kolom=1..2;
Matrik= Array[Baris] of Array[Kolom] of Byte;
Var
Tabel : Matrik;

Dibawah ini akan diberikan listing program penggunaan array dua dimensi dalam aplikasi penjumlahan matrik :
Contoh Program:
Program Penjumlahan_Matrik;
Uses wincrt;
Var
Matrik1,Matrik2, Hasil : Array[1..3,1..2] of Integer;
i,j : Integer;
Begin
ClrScr;
{ input matrik ke satu }
Writeln(' Elemen matrik satu');
For i := 1 to 3 Do
Begin
For j := 1 to 2 Do
Begin
Write('Elemen baris -',i,' Kolom -',j,'= ');
Readln(matrik1[i,j]);
End;
End;
{input matrik ke dua}
Writeln('input elemen matrik dua');
For i:= 1 to 3 Do
Begin
For j:= 1 to 2 Do
Begin
Write('Elemen baris -',i,' kolom -',j,'= ');
Readln(matrik2[i,j]);
End;
End;
{proses penjumlahan tiap elemen}
For i := 1 to 3 Do
Begin
For j:= 1 to 2 Do
Begin
Hasil[i,j]:=Matrik1[i,j]+Matrik2[i,j];
End;
End;
{proses cetak hasil}
For i:= 1 to 3 Do
Begin
For j:= 1 to 2 Do
Begin
Write(Hasil[i,j]:6);
End;
Writeln;
End;
Readln;
End.



V. Array Sebagai Parameter

Array dapat digunakan sebagai parameter yang dikirimkan baik secara nilai (by value) atau secara acuan (by reference) ke procedure atau ke function. Procedure yang menggunakan parameter berupa array harus dideklarasikan di dalam judul procedure yang menyebutkan parameternya bertipe array.

Contoh Program :
Program Contoh_Pengiriman_Parameter_Array_Di_Procedure;
Uses winrt;
Const
Garis ='---------------------------------------------------';
Type
Untai = Array[1..10] of String[15];
Bulat = Array[1..10] of Integer;
Huruf = Array[1..10] of Char;
Var
i,Banyak : Integer;
Procedure Proses(Nama:Untai;Nilai:Bulat);
Var
Ket : String;
Abjad : Char;
Begin
Writeln(Garis);
Writeln('Nama Nilai Abjad Keterangan');
Writeln(Garis);
For i := 1 to Banyak Do
Begin
If Nilai[i] > 90 Then
Begin
Abjad:='A';
Ket :='Istimewa';
End;
If (Nilai[i]<90) And (Nilai[i]>70) Then
Begin
Abjad:='B';
Ket :='Memuaskan';
End;
If (Nilai[i]<70) And (Nilai[i]>60) Then
Begin
Abjad:='C';
Ket :='Cukup';
End;
If (Nilai[i]<60) And (Nilai[i]>45) Then
Begin
Abjad:='D';
Ket :='Kurang';
End;
If Nilai[i]< 45 Then
Begin
Abjad:='E';
Ket :='Sangat kurang';
End;
Writeln(Nama[i]:15,' ',Nilai[i]:4,' ',Abjad,' ',Ket:15);
End;
Writeln(Garis);
End;
Procedure Masuk_Data;
Var
Nama : Untai;
Nilai : Bulat;
Begin
Write('Banyak data =');Readln(Banyak);
For i:= 1 to Banyak Do
Begin
ClrScr;
Writeln('Data ke - ',i);
Write('Nama =');readln(Nama[i]);
Write('Nilai =');readln(Nilai[i]);
End;
Proses(Nama,Nilai);
End;
{modul Utama}
Begin
Masuk_Data;
Readln;
End.

Contoh:
ARRAY
Program cetak_angka;
uses wincrt;
var
angka:array[1..10]of integer;
i,n:integer;
begin
write('berapa kali data ingin Anda masukkan?'); read(i);
for n:=1 to i do
begin
write('masukkan nilai Anda = '); read(angka[n]);
end;
clrscr;
for i:=1 to n do
begin
writeln('nilai Anda=',angka[i]);
end;
end.

ARRAY (PERKALIAN MATRIKS)
program perkalian_matrik;
uses wincrt;
var
a,b,c:array [1..25,1..25] of real;
i,j,k,m,n,l:byte;
begin
writeln('PERKALIAN MATRIKS');
write('baris matriks pertama=');readln(m);
write('kolom matriks pertama/brs matriks kedua=');readln(n);
write('kolom matriks kedua=');readln(l);
writeln;
writeln('komponen matriks yang pertama');
for i:=1 to m do
begin
for j:=1 to n do
begin
write('nilai[',i,',',j,']=');readln(a[i,j]);
end;
writeln;
end;
writeln('komponen matriks kedua');
for i:=1 to n do
begin
for j:=1 to l do
begin
write('nilai[',i,',',j,']=');readln(b[i,j]);
end;
writeln;
end;
for i:=1 to m do
begin
for j:=1 to l do
begin
c[i,j]:=0;
for k:=1 to l do
c[i,j]:=c[i,j]+a[i,k]*b[k,j];
end;
end;
writeln;
writeln('hasil perkalian matriks');
writeln;
for i:=1 to m do
begin
writeln;
for j:=1 to l do
write(c[i,j]:5:2);
end;
end.

Selasa, 08 Desember 2009

CONDITION/SELECTION

CONDITION/SELECTION

Sistem ini memungkinkan programmer untuk membuat program yang dapat memilih satu langkah di antara sejumlah langkah untuk dikerjakan.
Hamper tiap program yang komplek mengandung suatu penyeleksian tertentu. Dengan menyeleksi suatu kondisi, program dapat menentukan tindakan apa yang harus dikerjakan, tergantung dari hasil kondisi yang diseleksi tersebut. Untuk menyeleksi suatu kondisi, di dalam pascal dapat dipergunakan system If dan Case.
Statemen If dapat dibagi menjadi tiga, yaitu:
1. Statemen If-Then
2. Statemen If-Then…Else
3. Statemen If Bersarang (Nested)
Sedangkan statemen Case dapat dibedakan menjadi dua, yaitu:
1. Statemen Case-of
2. Statemen Case-of … Else

Statemen If
Statemen dari statemen If dapat berupa If-Then atau If-Then-Else

Statemen If – Then
Contoh penggunaan statemen If – Then
uses wincrt;
var
nilai_ujian:real;
keterangan:string;
begin
keterangan:='tidak lulus';
write('nilai yang diperoleh mahasiswa?');
readln(nilai_ujian);
if nilai_ujian > 50 then keterangan:='lulus';
write(keterangan);
end.

Statemen If - Then..else
Bentuk dari statemen if-then…else merupakan pengembangan dari struktur If-Then dengan statemen sebagai berikut.
If kondisi Then
Statemen 1 (instruksi 1)
Else
Statemen 2 (instruksi 2)

Berikut merupakan contoh program yang menggunakan condition

program kelulusan;
uses wincrt;
var a,b,c:integer;
d:real;
begin
write('nilai kalkulus=');readln(a);
write('nilai geometri=');readln(b);
write('nilai PDB='); readln(c);
d:=(a+b+c)/3;
writeln('nilai rata-rata matematika=',d:2:2);
If d>50 then
writeln('Selamat Anda lulus!!!')
else
writeln('Maaf Anda tidak lulus')
end.
Statemen Bersarang
Statemen bersarang adalah bentuk statemen If yang dapat mengandung pernyataan If yang lain. Hal yang penting di dalam pembuatan If bersarang adalah pemahaman terhadap If Else.
Contoh:
Program Nilai_Ujian;
Uses wincrt;
Var
na :integer; skor : string;
Begin
Write ('input nilai :');
readln (na);
if (na<=50) then skor := 'E' else
if (na<=60) then skor := 'D' else
if (na<=75) then skor := 'C' else
if (na<=85) then skor := 'B' else
if (na<=100) then skor:= 'A';
write ('nilai yang diinputkan memiliki skor :',skor);
End.

Statemen Case
Statemen Case merupakan alternative dari pernyataan if untuk masalah pilihan yang berganda pada masalah tertentu, Case lebih member kejelasan daripada if. Namun, perlu diketahui bahwa sama persoalan yang dapat ditangani Case bisa ditangani oleh If, tetapi tidak sebaliknya.

Statemen Case-of
Struktur Case-of mempunyai suatu ungkapan logika yang biasa disebut dengan selector dan sejumlah statemen yang diawali dengan suatu label permasalahan (case label) yang mempunyai tipe sama dengan selector. Statemen yang mempunyai case label yang bernilai sama dengan nilai selector akan diproses sedang statemen yang lainnya tidak.
Perbedaan dengan if adalah bila statemen If menyeleksi suatu kondisi dan terpenuhi, setelah memproses statemen dalam lingkungan yang terpenuhi tersebut, proses penyeleksian masih dilakukan terhadap statemen If berikutnya yang lain. Sedangkan pada statemen Case-of bila salah satu kondisi terpenuhi (nilai case label sama dengan niali selector) dan statemen tersebut telah diprose, selanjutnya statemen-statemen yang lainnya dalam bentuk Case tidak akan diseleksi lagi.
Contoh program dari Case-of:
program mengeja;
uses wincrt;
var a:integer;
b,c:integer;
begin
write('bilangan yang anda punyai: ');readln(a);
b:=a div 10;
if a=11 then write('sebelas')
else if a=17 then write('tujuhbelas')
else if a=12 then write('duabelas');
case b of
1:begin write('sepuluh'); end;
2:begin write('dua puluh'); end;
3:begin write('tiga puluh'); end;
4:begin write('empat puluh');end;
5:begin write('lima puluh'); end;
6:begin write('enam puluh'); end;
7:begin write('tujuh puluh'); end;
8:begin write ('delapan puluh');end;
9:begin write('sembilan puluh');end;
end;
c:=a mod 10;
write(' ');
case c of
1:begin write('satu'); end;
2:begin write('dua'); end;
3:begin write('tiga'); end;
4:begin write('empat');end;
5:begin write('lima'); end;
6:begin write('enam'); end;
7:begin write('tujuh'); end;
8:begin write ('delapan');end;
9:begin write('sembilan');end;
end;
end.

Statemen Case-Of … Else
Statemen Case-Of … Else merupakan pengembangan dari statemen case-of dan merupakan pengembangan dari standar Pascal. Pada Case-Of bila tidak ada kondisi yang terpenuhi, berarti tidak ada statemen yang di dalam lingkungan Case-Of yang diproses. Dengan struktur Case_of…Else, bila tidak ada kondisi yang terpenuhi, maka statemen yang akan diproses di dalam lingkungan Case-Of adalah statemen yang ada di Else.
Contoh Program:
MENU MAKANAN
program menu;
uses wincrt;
var
x:integer;
begin
gotoxy(20,5);writeln('menu warung top=');
gotoxy(20,6);writeln('================');
gotoxy(20,9);writeln('1.ayam kremes');
gotoxy(20,10);writeln('2.mie goreng');
gotoxy(20,11);writeln('3.mie bandung');
gotoxy(20,12);writeln('4.pindang srani');
gotoxy(20,16);write ('apa menu favorit anda?');
readln(x);
case x of
1:begin
clrscr;
writeln('menu yang anda pilih adalah....');
writeln('ayam kremes');
end;
2:begin
clrscr;
writeln('menu yang anda pilih adalah....');
writeln('mie goreng');
end;
3:begin
clrscr;
writeln('menu yang anda pilih adalah....');
writeln('mie bandung');
end;
4:begin
clrscr;
writeln('menu yang anda pilih adalah....');
writeln('pindang srani');
end;
Else
clrscr;
writeln('Anda Salah Pilih');
end;
end.

Kumpulan Latihan Soal

1. LUAS DAN KELILING PERSEGI PANJANG
program luas_dan_keliling_persegipanjang;
uses wincrt;
var p,l,Lp,K:integer;
begin
write('masukkan panjang= ');readln(p);
write('masukkan lebar= ');readln(l);
Lp:=p*l;
K:=2*(p+l);
writeln('luas= ',Lp);
writeln('keliling= ',K);
end.

2. VOLUME DAN LUAS PERMUKAAN KUBUS
program volume_dan_luaspermukaan_kubus;
uses wincrt;
var s,L,V:integer;
begin
write('masukkan panjang sisi kubus=');read(s);
L:=s*s*6;
V:=s*s*s;
writeln('jadi luas permukaan kubusnya adalah=',L);
write('jadi volume kubusnya aadalah=',V);
end.
3. LUAS DAN KELILING LINGKARAN
program luas_dan_kelilinglingkaran;
uses wincrt;
const phi=3.14;
var r,L,K:real;
begin
write('masukkan jari-jari lingkaran=');read(r);
L:=phi*r*r;
K:=2*phi*r;
writeln('jadi luas lingkaran adalah=',L:0:2);
write('jadi keliling lingkaran adalah=',K:0:2);
end.

4. MEMPERTUKARKAN NILAI A DAN NILAI B
program mempertukarkan_nilaiA_dan_B;
uses wincrt ;
var
a,b,c:integer;
begin
write('masukkan nilai a=');
read(a);
write('masukkan nilai b=');
read(b);
c:=a;
a:=b;
b:=c;
writeln('stelah ditukar');
writeln('sekarang nilai a=',a);
writeln('sekarang nilai b=',b);
end.

5. PERMUKAAN TABUNG DAN KERUCUT
program permukaan_tabung_dan_kerucut;
uses wincrt;
const phi=3.14;
var rt,tt,Lt,s,rk,tk,Lk:real;
begin
write('masukkan jari-jari alas tabung=');read(rt);
write('masukkan tinggi tabung=');read(tt);
Lt:=(2*phi*rt*rt)+(2*phi*rt*tt);
writeln('luas permukaan tabung=',Lt);
write('masukkan jari-jari alas kerucut=');read(rk);
write('masukkan tinggi kerucut=');read(tk);
s:=sqrt((tk*tk)+(rk*rk));
Lk:=(phi*rk*rk)+(rk*phi*s);
write('luas permukaan kerucut=',Lk);
end.

6. OPERASI BILANGAN
program operasi_bilangan;
uses wincrt;
var a,b,c,d,e,g,h:integer;
f:real;
begin
write('masukkan nilai a=');readln(a);
write('masukkan nilai b=');readln(b);
c:=a+b;
d:=a-b;
e:=a*b;
f:=a/b;
g:=a div b;
h:=a mod b;
writeln('nilai a+b adalah=',c);
writeln('nilai a-b adalah=',d);
writeln('nilai a*b adalah=',e);
writeln('nilai a/b adalah=',f:0:2);
writeln('nilai a div b adalah=',g);
writeln('nilai a mod b adalah=',h);
end.

7. GAJI KARYAWAN
program gaji_karyawan;
uses wincrt;
var
nama:string;
gp,ti,ta,pajak,gs,gt:real;
begin
write('masukkan nama=');readln(nama);
write('masukkan gaji pokok=');readln(gp);
ti:=0.15*gp;
ta:=0.20*gp;
gs:=gp+ti+ta;
pajak:=0.15*gs;
gt:=gs-pajak;
writeln('tunjangan istri adalah=',ti:0:2);
writeln('tunjangan anak adalah=',ta:0:2);
writeln('gaji keseluruhan adalah=',gt:0:2);
end.

8. KOORDINAT TITIK TENGAH
program koordinat_titiktengah;
uses wincrt;
var x1,x2,y1,y2,xt,yt:real;
begin
writeln('masukkan nilai x1 dan y1=');
write('x1=');read(x1);
write('y1=');read(y1);
writeln('masukkan x2 dan y2=');
write('x2=');read(x2);
write('y2=');read(y2);
xt:=(x1+x2)/2;
yt:=(y1+y2)/2;
write('jadi titik tengahnya adalah=(',xt:0:2,',',yt:0:2,')');
end.

9. KONVERSI JAM KE DETIK
program konversi_jam_kedetik;
uses wincrt;
var
jam,menit,detik,total_detik:integer;
begin
write('masukkan jam=');read(jam);
write('masukkan menit=');read(menit);
write('masukkan detik=');read(detik);
total_detik:=(jam*3600)+(menit*60)+detik;
writeln('total detiknya adalah=',total_detik);
end.

10. KONVERSI DETIK KE JAM
program konversi_detik_kejam;
uses wincrt;
var
jam,detik,menit:longint;
begin
write('masukkan detik=');read(detik);
jam:=detik div 3600;
detik:=detik mod 3600;
menit:=detik div 60;
detik:=detik mod 60;
write('jadi jamnya adalah=',jam,'jam,',menit,'menit,',detik,'detik');
end.

11. LAMANYA TELEPON
program lamanya_telepon;
uses wincrt;
var
jam1,menit1,detik1,jam2,menit2,detik2,detik_awal,detik_akhir,lamanya:integer;
begin
write('masukkan jam awal=');read(jam1);
write('masukkan menit awal=');read(menit1);
write('masukkan detik awal=');read(detik1);
write('masukkan jam akhir=');read(jam2);
write('masukkan menit akhir=');read(menit2);
write('masukkan detik akhir=');read(detik2);
detik_awal:=(jam1*3600)+(menit1*60)+detik1;
detik_akhir:=(jam2*3600)+(menit2*60)+detik2;
lamanya:=detik_akhir-detik_awal;
writeln('lamanya telepon dalam detik adalah=',lamanya);
end.






12. BIAYA TELEPON

program biaya_telepon;
uses wincrt;
var j1,j2,m1,m2,d1,d2,x,y,lam,p,b:integer;
begin
write('jam mulai=');readln(j1);
write('menit mulai=');readln(m1);
write('detik mulai=');readln(d1);
write('jam akhir=');readln(j2);
write('menit akhir=');readln(m2);
write('detik akhir=');readln(d2);
x:=(j1*3600)+(m1*60)+d1;
y:=(j2*3600)+(m2*60)+d2;
lam:=y-x;
writeln('lamanya dlm detik=',lam);
p:=lam div 5;
b:=p*200;
writeln('biayanya adalah=',b);
end.


13. SUHU
program suhu;
uses wincrt;
var
C,K,F:real;
begin
write('masukkan nilai celcius=');read(C);
K:=C+273;
F:=(9/5*C)+32;
writeln('jadi nilai kelvin adalah=',K:0:2);
writeln('jadi nilai fahrenhet adalah=',F:0:2);
end.


14. UMUR SESEORANG
program umur_seseorang;
uses wincrt;
var d1,m1,y1,d2,m2,y2,h,i,j,k,l:integer;
begin
write('masukkan tanggal lahir=');readln(d1,m1,y1);
write('masukkan tanggal sekarang=');readln(d2,m2,y2);
h:=(y2-y1)*365+(m2-m1)*30+(d2-d1);
i:=h div 365;
j:=h mod 365;
k:=j div 30;
l:=j mod 30;
writeln('umur sekarang=',i,' tahun ',k,' bulan ',l,' hari');
end.

15. NILAI MAHASISWA
program nilai_mahasiswa;
uses wincrt;
var nama,nim:string;
nt,nm,nf,na:real;
begin
write('nama=');readln(nama);
write('nim=');readln(nim);
write('nilai tugas=');readln(nt);
write('nilai mid=');readln(nm);
write('nilai final=');readln(nf);
na:=(0.20*nt)+(0.30*nm)+(0.50*nf);
writeln('nilai akhir=',na:0:2);
begin
if na>85 then write('nilai A')else
if na<86 then write('nilai B')else
if na<71 then write('nilai C')else
if na<56 then write('nilai D')else
write('nilai C')
end;
end.



16. RUMUS PERSAMAAN KUADRAT
program rumus;
uses wincrt;
var x1,x2,a,b,c,d:real;
begin
write('masukkan nilai a=');readln(a);
write('masukkan nilai b=');readln(b);
write('masukkan nilai c=');readln(c);
if a=0 then write('error')else
begin
d:=(b*b)-(4*a*c);
writeln('D=',d:0:2);
if d>0 then
begin
writeln('pers.kuadrat memp.2 akar yg berbeda');
x1:=(-b+sqrt(d))/2*a;
x2:=(-b-sqrt(d))/2*a;
writeln('x1=',x1:0:2);
writeln('x2=',x2:0:2);
end
else
if d=0 then
begin
writeln('pers.kuadrat memp.akar yg sama');
x1:=-b/(2*a);
x2:=x1;
write('jadi x1 dan x2 adalah=',x2:0:2);
end
else
writeln('tdk memp akar real');
end;
end.



17. MENU MAKANAN
program menu;
uses wincrt;
var
x:integer;
begin
gotoxy(20,5);writeln('menu warung top=');
gotoxy(20,6);writeln('================');
gotoxy(20,9);writeln('1.penyet');
gotoxy(20,10);writeln('2.bakso');
gotoxy(20,11);writeln('3.mie ayam');
gotoxy(20,12);writeln('4.pindang tetel');
gotoxy(20,16);writeln('apa menu favorit anda?');
readln(x);
case x of
1:begin
clrscr;
writeln('menu yang anda pilih adalah....');
writeln('penyet');
end;
2:begin
clrscr;
writeln('menu yang anda pilih adalah....');
writeln('bakso');
end;
3:begin
clrscr;
writeln('menu yang anda pilih adalah....');
writeln('mie ayam');
end;
4:begin
clrscr;
writeln('menu yang anda pilih adalah....');
writeln('pindang tetel');
end;
5:begin
clrscr;
writeln('kembali ke menu');
end;
end;
end.


18. BILANGAN GANJIL

program bilangan_ganjil;
uses wincrt;
var
x,y,jum:integer;
begin
write('sampai berapa?');readln(y);
begin
x:=1;
repeat
write(x,' ');
x:=x+2;
until
x>y;
end;
end.


19. BILANGAN GENAP
program bilangan_genap;
uses wincrt;
var
x,y,jum:integer;
begin
write('sampai berapa?');readln(y);
begin
x:=2;
repeat
write(x,' ');
x:=x+2;
until
x>y;
end;
end.


20. BILANGAN GENAP DAN GANJIL

program bilangan_genap_dan_ganjil;
uses wincrt;
var x,y,n:integer;
begin
write('masukkan bilangan=');readln(n);
for x:=1 to n do
if x mod 2=0 then write(x:3);writeln(' bilangan genap');
for y:=1 to n do
if y mod 2<>0 then write(y:3);write(' bilangan ganjil');
end.




21. JUMLAH BILANGAN (menggunakan reapet until)

program jumlah_bilangan;
uses wincrt;
var
x,y,jum:integer;
begin
x:=1;
jum:=0;
write('masukkan y=');readln(y);
repeat
write(x);
if x jum:=jum+x;
x:=x+1;
until x>y;
write('=');
write(' ',jum);
end.

22. PENGULANGAN KATA (menggunakan for-to-do)
program perulangan;
uses wincrt;
var
n:integer;
begin
for n:=1 to 5 do
writeln(n,'. Pemrograman Komputer');
end.


23. PERULANGAN KATA (menggunakan repeat until)
program perulangan;
uses wincrt;
var
x:integer;
begin
x:=1;
repeat
writeln(x,'. Pemrograman Komputer');
x:=x+1;
until x>5;
end.




24. PERULANGAN KATA (menggunakan while-do)
program perulangan;
uses wincrt;
var
x:integer;
begin
x:=1;
while x<6 do
begin
writeln(x,'. Pemrograman Komputer');
x:=x+1;
end;
end.


25. SEGITIGA ASYIK
program segitiga;
uses wincrt;
var x,y,z:integer;
begin
write('masukkan angka segitiga asyik=');readln(y);
for x:=1 to y do
begin
for z:=1 to x do
write(x:3);
writeln;
end;
end.



26. JUMLAH SEGITIGA ASYIK

program segitiga;
uses wincrt;
var n,i,j,a:integer;
begin
write('masukkan angka untuk segitiga asyik=');readln(n);
for j:=1 to n do
begin
for i:=1 to j do
if j<=i then write(j:2,' = ')else
write(j:2,' + ');
for i:=1 to j do
a:=i*j;
write(a);
writeln;
end;
end.



27. SEGITIGA 15
program segitiga;
uses wincrt;
var x,y,z:integer;
begin
write('masukkan angka=');readln(y);
for x:=1 to y do
begin
for z:=1 to x do
write(' ',15);
writeln;
end;
end.



28. ARRAY (PERKALIAN MATRIKS)

program perkalian_matrik;
uses wincrt;
var
a,b,c:array [1..25,1..25] of real;
i,j,k,m,n,l:byte;
begin
writeln('PERKALIAN MATRIKS');
write('baris matriks pertama=');readln(m);
write('kolom matriks pertama/brs matriks kedua=');readln(n);
write('kolom matriks kedua=');readln(l);
writeln;
writeln('komponen matriks yang pertama');
for i:=1 to m do
begin
for j:=1 to n do
begin
write('nilai[',i,',',j,']=');readln(a[i,j]);
end;
writeln;
end;
writeln('komponen matriks kedua');
for i:=1 to n do
begin
for j:=1 to l do
begin
write('nilai[',i,',',j,']=');readln(b[i,j]);
end;
writeln;
end;
for i:=1 to m do
begin
for j:=1 to l do
begin
c[i,j]:=0;
for k:=1 to l do
c[i,j]:=c[i,j]+a[i,k]*b[k,j];
end;
end;
writeln;
writeln('hasil perkalian matriks');
writeln;
for i:=1 to m do
begin
writeln;
for j:=1 to l do
write(c[i,j]:5:2);
end;
end.




29. FUNGSI

program fungsi_x;
uses wincrt;
var
x:integer;
function fungsi (x:real):real;
var
y:real;
begin
write('masukkan nilai x=');readln(x);
y:=x*x+8*x+10;
fungsi:=y;
end;
begin
clrscr;
writeln('hasil dari nilai y nya adalah=',fungsi(x):2:0);

end.




30. FAKTORIAL

program fak;
uses wincrt;
procedure faktorial(n : byte;var hasil:longint);
begin
if n<=1 then
hasil:=1
else
begin
faktorial(n-1,hasil);
hasil:=n*hasil;
end;
end;

var
n:byte;
f:longint;
begin
write('berapa faktorial?');readln(n);
faktorial(n,f);
writeln('faktorial=',f);
end.

32. ARRAY
Program cetak_angka;
uses wincrt;
var
angka:array[1..10]of integer;
i,n:integer;
begin
write('berapa kali data ingin Anda masukkan?'); read(i);
for n:=1 to i do
begin
write('masukkan nilai Anda = '); read(angka[n]);
end;
clrscr;
for i:=1 to n do
begin
writeln('nilai Anda=',angka[i]);
end;
end.


33. Tukar nilai yang sudah ada
program tukar_variabel;
uses wincrt;
function {a,b,c adl parameter->digunakan pd saat fungsi di panggil}
tukar(a,b,c:integer):integer;
var
temp:integer;
begin
temp:=a; {temp adl variabel didlm fungsi}
a:=c;
c:=temp;
writeln('a=',a);
writeln('b=',b);
writeln('c=',c);
writeln;
end;
var x,y,z:integer;
begin
x:=100;
y:=200;
z:=300;
write(' nilai sebelum ditukar');
writeln;
writeln('a=',x);
writeln('b=',y);
writeln('c=',z);
writeln;
writeln('nilai sesudah ditukar');
tukar(x,y,z);
write('terima kasih');
end.

34. Tukar nilai a dan b yang diinputkan

program tukar_nilai;
uses wincrt;
var
a: integer;
b: integer;
temp: integer;
begin
write ('masukkan nilai a=');readln(a);
write ('masukkan nilai b=');readln(b);
temp:=a;

a:=b;
b:=temp;

writeln('nilai setelah ditukar adalah:');
writeln('a=',a);
writeln('b=',b);
end.


35. Tukar kata-kata
program tukar_kata;
uses wincrt;

function
tukar(a,b,c:string):string;
var
temp:string;
begin
temp:=a; {temp adl variabel didlm fungsi}
a:=c;
c:=temp;
writeln(a,' ',b,' ',c);
writeln(b,' ',a,' ',c);
writeln(c,' ',b,' ',a);
writeln;
end;
var x,y,z:string;
begin
write('sebelum diacak');
writeln;
writeln('masukkan kata1='); readln(x);
writeln('masukkan kata2='); readln(y);
writeln('masukkan kata3='); readln(z);
writeln;
writeln('sesudah ditukar');
tukar(x,y,z);
write('terima kasih');
end.





36. Acak Tiga Kata
program tukar_kata;
uses wincrt;
function {a,b,c adl parameter->digunakan pd saat fungsi di panggil}
tukar(a,b,c:string):string;
var
temp1,temp2:string;
begin
temp1:=a; {temp adl variabel didlm fungsi}
a:=c;
c:=temp1;
temp2:=b;
b:=a;
a:=temp2;
writeln(a);
writeln(b);
writeln(c);
writeln;
end;
var x,y,z:string;
begin
write('sebelum diacak');
writeln;
writeln('masukkan kata1='); readln(x);
writeln('masukkan kata2='); readln(y);
writeln('masukkan kata3='); readln(z);
writeln;
writeln('sesudah ditukar');
tukar(x,y,z);
write('terima kasih');
end.

37.Acak nama

program utak_atik_nama;
uses wincrt;
var
nama1,nama2,temp:string;
begin
write ('masukkan nama 1=');readln(nama1);
write ('masukkan nama 2=');readln(nama2);
temp:=nama1;
nama1:=nama2;
nama2:=temp;

writeln('utak atik');
writeln(nama1,' ',nama2,' ',nama2);
writeln(nama2,' ',nama2,' ',nama1);
end.

38. Penjumlahan Deret bilangan


program penjumlahan;
uses wincrt;
var x,y,jmlh:integer;
begin
x:=1;
jmlh:=0;
write('masukkan nilai suatu bilangan:');readln(y);
repeat
write (x);
if x write ('+');
jmlh:=jmlh+x;
x:=x+1;
until x>y;
write('=');
write(jmlh);
end.

39. Perkalian Deret Bilangan

program perkalian;
uses wincrt;
var x,y,kali:real;
begin
x:=1;
kali:=1;
write('masukkan nilai suatu bilangan: ');readln(y);
write('hasil kali bilangan:');
repeat
write (x:1:0);
if x write ('*');
kali:=kali*x;
x:=x+1;
until x>y;
write('=');
write(kali:0:0);
end.

40. Penjumlahan Segitiga Asik

program segitiga_asyik;
uses wincrt;
var
i,j,n,jumlah:integer;
begin
write('masukkan angka untuk mainan segitiga asyik:');
readln(n);

for j:=1 to n do

begin
for i:=1 to j do

if j<=i then
write(j:2,'= ')
else write(j:2,'+');
write;
for i:=1 to j do
jumlah:=i*j;
write(jumlah);
writeln;
writeln(' ');
end;
end.

41. Ulang Bilangan Genap

program ulang_genap;
uses wincrt;
var num:integer;
begin
num:=2;
repeat
write(' ',num);
num:=num+2;
until num>50
end.


42.Mengeja Angka
Program Terbilang;
Uses Wincrt;
Var
a,b,c:longint;
Begin
Write('Masukkan Angka: ');readln(a);
b:=a div 10;
c:=a mod 10;
Writeln;
Begin
If (b=1) and (c=0) then write('sepuluh');
If (b=1) and (c=1) then write('sebelas');
If (b=1) and (c=2) then write('dua belas');
If (b=1) and (c=3) then write('tiga belas');
If (b=1) and (c=4) then write('empat belas');
If (b=1) and (c=5) then write('lima belas');
If (b=1) and (c=6) then write('enam belas');
If (b=1) and (c=7) then write('tujuh belas');
If (b=1) and (c=8) then write('delapan belas');
If (b=1) and (c=9) then write('sembilan belas');
Begin
If (b=0) and (c=1) then write('satu');
If (b=0) and (c=2) then write('dua');
If (b=0) and (c=3) then write('tiga');
If (b=0) and (c=4) then write('empat');
If (b=0) and (c=5) then write('lima');
If (b=0) and (c=6) then write('enam');
If (b=0) and (c=7) then write('tujuh');
If (b=0) and (c=8) then write('delapan');
If (b=0) and (c=9) then write('sembilan');
End;
Case b of
2: Write('dua puluh ');
3: Write('tiga puluh ');
4: Write('empat puluh ');
5: Write('lima puluh ');
6: Write('enam puluh ');
7: Write('tujuh puluh ');
8: Write('delapan puluh ');
9: Write('sembilan puluh ');
End;
If b>1 then
Case c of
1: Write('satu');
2: Write('dua');
3: Write('tiga');
4: Write('empat');
5: Write('lima');
6: Write('enam');
7: Write('tujuh');
8: Write('delapan');
9: Write('sembilan');
End;
End;
End.






43. Program Cetak Angka
Program cetak_angka;
uses wincrt;
var
angka:array[1..10]of integer;
i,n:integer;
begin
write('berapa kali data ingin Anda masukkan?'); read(i);
for n:=1 to i do
begin
write('masukkan nilai Anda = '); read(angka[n]);
end;
clrscr;
for i:=1 to n do
begin
writeln('nilai Anda=',angka[i]);
end;
end.

44. Perkalian deret bilangan
program faktorial_suatu_bilangan;
uses wincrt;

function
factorial(a:integer):real{longint};
begin
if (a=1) then
factorial:=1
else
factorial:=a*factorial(a-1);
end;
var
x,y:integer;
begin
x:=1;
writeln('faktorial sequence');
writeln;
write('berapa banyak bilangan yang anda inginkan=');
readln(y);
repeat
write(x);
if xwrite ('*');
x:=x+1;
until x>y;
write('=');
writeln(factorial(x):8:0);
end.

45. Fibonacci
program program_fibonacci;
uses wincrt;
function fibonacci(n : integer):integer;
begin
if (n = 1) or (n = 2) then fibonacci := 1
else
fibonacci := fibonacci(n - 1) + fibonacci(n - 2);
end;
var x:integer;
begin
write('masukkan nilai x='); readln(x);
writeln('fibonacci dari suku ke x=',fibonacci(x));
end.

46. rekursi
program contoh_rekursi;
uses wincrt;
var akhir:word;
procedure Rekursi;
begin
if akhir<200 then
begin write('pascal':15);
write(' ');
akhir:=akhir+1;
rekursi;
end;
end;
begin
akhir:=0;
rekursi;
end.


47. Factorial

program factorial_bilangan;
uses wincrt;
var data:longint;
procedure factorial_bil(n:longint);
var
i,fac:longint;
begin
if n<0 then
begin
writeln('bilangan negatif tidak mempunyai nilai factorial');
end
else
begin
fac:=1;
for i:=1 to n do
begin
fac:=fac*i;
end;
writeln(n:0,'!=',fac);
end;
end;
begin
clrscr;
write('masukkan data nilai bilangan bulat=');
readln(data);
factorial_bil(data);
end.

48. Tukar duit
program tukar_duit;
uses wincrt;
var a,b,c,d,e,f,g,h,i,j:longint;
begin
writeln('masukkan uang anda(maksimal 99999)='); readln(a);
b:=a div 10000;
c:=a mod 10000;
d:=c div 1000;
e:=c mod 1000;
f:=e div 500;
g:=e mod 500;
h:=g div 200;
i:=g mod 200;
j:=i div 100;
write (a,'=',b,'sepuluhribuan, ',d,'seribuan, ',f,'limaratusan, ',h,'duaratusan ',j,'seratusan');
end.

49. Tukar koin

Program tukar_koin;
uses wincrt;
var e,f,g,h,i,j,x,y,z:longint;
begin
writeln('masukkan uang anda(maksimal 99999)='); readln(e);
f:=e div 500;
g:=e mod 500;
h:=g div 200;
i:=g mod 200;
j:=i div 100;
writeln (f,'limaratusan, ',h,'duaratusan ',j,'seratusan');
x:=500;
for x:=1 to f do
write('500 ');

y:=200;
for y:=1 to h do
write('200 ');

z:=100;
for z:=1 to j do
write ('100 ');
end.


50. program tukar hallo hai

program tukar;
uses wincrt;
function tukar(a,b:string):string;
var
temp:string;
begin
temp:=a;
a:=b;
b:=temp;
writeln(a,' ',b,' ',a);
writeln(b,' ',a,' ',b);
end;
var x,y:string;
begin
x:='hallo';
y:='hai';
{writeln('nilai sebelum ditukar');}
writeln;
writeln(x);
writeln(y);
writeln;
{writeln('nilai sesudah ditukar');}
tukar(x,y);
end.

MATERI PERKULIAHAN KONSEP MATEMATIKA

Mata kuliah konsep matematika terdiri atas 10 bab, yaitu Bab 1 Pertidaksamaan Kuadrat Bab 2 Relasi dan Fungsi Bab 3 Penyajian ...