Lecture Notes Algoritma dan Pemrograman

Ukuran: px
Mulai penontonan dengan halaman:

Download "Lecture Notes Algoritma dan Pemrograman"

Transkripsi

1 Menukar Isi Dua Variabel (ed. ) / Lecture Notes Algoritma dan Pemrograman Menukar Isi Dua Variabel Thompson Susabda Ngoen Salah satu kegiatan pengolahan data adalah menukar isi dua variabel, misalnya pada sorting (proses pengurutan). Terdapat beberapa cara untuk menukar isi variabel, yang dapat kita kelompokkan menjadi dua: dengan pemindahan data dan dengan proses aritmetika terhadap data. Pertukaran Isi Dengan Pemindahan Data Cara ini kita tiru dari kehidupan sehari-hari. Untuk menukar isi wadah A dan B, mula-mula kita mengeluarkan isi wadah A dan menaruhnya di tempat lain misalnya wadah C. Kemudian isi wadah B dipindahkan ke wadah A. Terakhir isi wadah C (yang semula berasal dari wadah A) dipindahkan ke wadah B. Pada cara ini kita meggunakan variabel perantara, bisa dengan satu variabel perantara atau dua variabel perantara. Gambar mengilustrasikan proses menukar isi variabel a dan b. Pertukaran pada gambar kiri menggunakan dua variabel perantara, yaitu C dan D. Pertukaran pada gambar kanan menggunakan satu variabel perantara yaitu C saja. c = a; c = a; d = b; a = b; a = d; b = c; b = c; Gambar. Pertukaran Data Dengan Bantuan Dua dan Satu Variabel Perantara Proses pertukaran isi variabel dengan bantuan satu variabel perantara tentu lebih efisien baik dari segi kebutuhan memori maupun kecepatan proses walaupun tidak signifikan. Pertukaran Isi Dengan Proses Aritmetika. Dengan Penjumlahan int a, b, tambah; tambah = a + b;

2 Menukar Isi Dua Variabel (ed. ) / 0 a = tambah - a; b = tambah - a; Perhatikan instruksi baris ke-. a = tambah - a sebenarnya menghitung a = (a + b) - a atau a bernilai b. baris ke-: b = tambah - a menyebabkan b = (a + b) - b = a.. Dengan Pengalian 0 int a, b, kali; kali = a * b; a = kali / a; b = kali / a; Perhatikan instruksi baris ke-. a = kali / a sebenarnya menghitung a = (a * b) / a atau a bernilai b. baris ke-: b = kali / a menyebabkan b = (a * b) / b = a.. Dengan Pengurangan 0 int a, b, kurang; kurang = abs(a - b); if (a > b) { a -= kurang; b += kurang; else { a += kurang; b -= kurang; Dengan Penjumlahan, Tanpa Variabel Perantara Pada cara pertama hasil penjumlahan ditampung dengan sebuah variabel lain. Program berikut menampung hasil penjumlahan di salah satu variabel asal. int a, b; a = a + b; b = a - b; a = a - b; 0 0 0

3 Menukar Isi Dua Variabel (ed. ) / 0 Perhatikan instruksi baris ke-. b = a - b sebenarnya menghitung b = (a + b) - b atau b bernilai a. baris ke-: a = a - b menyebabkan a = (a + b) - a = b. Tabel. Pertukaran Data Dengan Penjumlahan Tanpa Bantuan Variabel Perantara Isi Variabel a b a = a + b; 0 b = a - b; 0 a = a - b;. Dengan Pengalian, Tanpa Variabel Perantara Berbeda dengan program, program berikut mengalikan kedua variabel asal dan meletakkan hasilnya di salah satu variabel asal tersebut. 0 int a, b; a = a * b; b = a / b; a = a / b; Perhatikan instruksi baris ke-. b = a / b sebenarnya menghitung b = (a * b) / b atau b bernilai a. baris ke-: a = a / b menyebabkan a = (a * b) / a atau a bernilai b. Tabel. Pertukaran Data Dengan Perkalian Tanpa Bantuan Variabel Perantara Isi Variabel a b 0 a = a * b; 00 b = a / b; 00 0 a = a / b; 0 Ada hal yang luput dari pengamatan kita pada program dan. Apakah kedua program masih memberikan hasil yang benar jika nilai yang diproses mendekati nilai maksimum? Seperti kita ketahui setiap tipe data pada bahasa pemrograman mempunyai batas nilai minimum dan maksimum. Perancang bahasa C tidak menetapkan jumlah byte yang pasti untuk sebuah variabel bertipe data tertentu melainkan hanya menetapkan jumlah byte minimum. Implementor bahasa (pembuat compiler) diberi kebebasan untuk menentukan ukuran byte suatu tipe data. Compiler Turbo C++.0 dan Borland C++. yang dirancang untuk digunakan di atas sistem operasi MSDOS (yang menggunakan sistem pengalamatan memori bit)

4 Menukar Isi Dua Variabel (ed. ) / menggunakan memori dua byte untuk menampung data bilangan bulat (int). IDE Dev-C++... yang berjalan di atas sistem operasi Windows XP menggunakan compiler GCC yang mengalokasi memori byte untuk menampung data bilangan bulat. Compiler menyediakan sebuah berkas header bernama limits.h. Pada berkas ini dideklarasikan beberapa macro yang memberi nama kepada nilai terkecil dan terbesar, misalnya INT_MIN dan INT_MAX. Jika nilai yang dimasukkan ke dalam sebuah variabel lebih besar daripada daya tampung variabel tersebut (yang sesuai dengan tipe data variabel tersebut) maka akan menyebabkan overflow. Pada cara keempat apabila kedua variabel a dan b diberi nilai mendekati nilai maksimum maka akan menimbulkan overflow ketika dijumlahkan. Bilangan terbesar yang dapat ditampung variabel bertipe char pada bahasa C adalah. Hasil run program berikut masih benar meskipun terjadi overflow. Bagaimana menjelaskan kejanggalan ini? char a = 0, b = 00; a = a + b; // overflow b = a - b; a = a - b; Untuk menjelaskan kejanggalan ini kita perlu memahami cara komputer merepresentasi bilangan. Komputer merepresentasi (menyimpan di memori) bilangan baik integer maupun character dengan format binary digit s complement. Nilai absolut bilangan dikonversi menjadi digit biner. Jika bilangan bernilai negatif maka ubah semua bit terkiri menjadi dan sebaliknya, kemudian tambahkan nilai. Sebagai contoh 0 direpresentasi dengan dan -0 direpresentasi dengan 000. Komputer menginterpretasi bit dengan cara yang sama. Bit yang paling kiri menandakan jenis bilangan, 0 berarti positif dan berarti negatif. Jika bit terkiri bernilai 0 maka nilai bilangan adalah hasil konversi langsung. Jika bit terkiri bernilai maka ubah semua bit 0 menjadi dan sebaliknya, kemudian tambahkan nilai. Digit biner 000 akan diubah menjadi lalu menjadi yang artinya bernilai -0. Tabel. Representasi Bilangan Representasi Internal Isi Variabel a b a b a = a + b; b = a - b; a = a - b; a = a + b menyebabkan a bernilai 0, direpresentasikan dengan 0000 yang juga diartikan sebagai -0. b = a - b menyebabkan b bernilai -0, direpresentasi dengan yang juga diartikan sebagai 0. a = a - b menyebabkan a bernilai -, direpresentasi dengan yang juga diartikan sebagai 00. Bagaimana dengan program kelima? Hasil perkalian variabel a dan b mungkin menyebabkan overflow sehingga bernilai negatif. Jika nilai variabel a dan b relatif besar

5 Menukar Isi Dua Variabel (ed. ) / maka hasil perkaliannya bisa menyebabkan over-overflow, bernilai positif kembali tetapi salah. Tabel menyajikan hasil perkalian berbagai nilai yang ditampung dengan variabel bertipe char dan int. Perkalian dua nilai positif yang menyebabkan overflow menghasilkan nilai negatif. Bila nilai negatif ini dibagi dengan nilai semula yang positif tentu memberikan hasil yang salah. Tabel. Overflow Pada Perkalian Berbagai Nilai Virtual Atau Faktual? a * b a b char int Apakah kelima cara terakhir ini dapat diterapkan di dalam kehidupan nyata? Misalkan kita mempunyai dua kardus yang masing-masing di dalamnya terdapat sejumlah buku. Isi kedua kardus dapat saling ditukar jika total buku kedua kardus dapat muat di dalam satu kardus, dengan perkataan lain tidak menimbulkan overflow. Anda mempunyai dua gelas. Di dalam kedua gelas terdapat cairan sejenis. Dengan asumsi total volume cairan kedua gelas dapat ditampung di dalam satu gelas, dapatkan Anda menukar isi kedua gelas tersebut tanpa bantuan gelas lain sebagai perantara? Rasanya tidak dapat kecuali jika pada kedua gelas tersebut terdapat skala ukuran. Di manakah skala ukuran pada program komputer? Jika kita mempunyai dua larik karakter, yang bertama berisi string algoritma dan yang kedua berisi string pemrograman. Kita ingin menukar isi kedua variabel ini tanpa bantuan variabel lain. Apa hasil penjumlahan algoritma dan pemrograman? Pada salah satu folder di komputer Anda terdapat dua berkas, sebut saja yang pertama bernama struktur.c dan yang kedua bernama data.c. Nama kedua berkas ini mau saling ditukar. Apakah hal ini dapat dilakukan tanpa bantuan nama berkas lain, maksudnya misalkan salah satunya diubah dulu menjadi nama.c?

Sistem Berkas. Tujuan Pelajaran. Setelah mempelajari bab ini, Anda diharapkan :

Sistem Berkas. Tujuan Pelajaran. Setelah mempelajari bab ini, Anda diharapkan : Sistem Berkas Tujuan Pelajaran Setelah mempelajari bab ini, Anda diharapkan : Memahami konsep dasar sistem berkas Mengetahui metode akses pada sistem berkas Memahami struktur direktori Memahami struktur

Lebih terperinci

PRAKTIKUM 3 DASAR PEMROGRAMAN C

PRAKTIKUM 3 DASAR PEMROGRAMAN C PRAKTIKUM 3 DASAR PEMROGRAMAN C A. TUJUAN 1. Menjelaskan tentang beberapa tipe data dasar (jenis dan jangkauannya) 2. Menjelaskan tentang Variabel 3. Menjelaskan tentang konstanta 4. Menjelaskan tentang

Lebih terperinci

BAB V FUNGSI Tujuan : 5.1 Dasar Fungsi

BAB V FUNGSI Tujuan : 5.1 Dasar Fungsi BAB V FUNGSI Tujuan : 1. Memecah program dalam fungsi fungsi yang sederhana. 2. Menjelaskan tentang pemrograman terstruktur. 3. Mengetahui perbedaan antara variabel lokal, eksternal, statis dan register

Lebih terperinci

CSG2F3 Sistem dan Logika Digital (SLD) REPRESENTASI DATA. Tim Dosen SLD KK Telematika FIF Telkom University

CSG2F3 Sistem dan Logika Digital (SLD) REPRESENTASI DATA. Tim Dosen SLD KK Telematika FIF Telkom University CSG2F3 Sistem dan Logika Digital (SLD) REPRESENTASI DATA Tim Dosen SLD KK Telematika FIF Telkom University Pokok Bahasan Representasi data Bit, byte, dan word Representasi data numerik dan basis bilangan

Lebih terperinci

Konsep Dasar Pemrograman Prosedural

Konsep Dasar Pemrograman Prosedural Seri Buku Persiapan Seleksi Buku Untuk Siswa dan Guru Konsep Dasar Pemrograman Prosedural (dilengkapi contoh soal dan pembahasan) ii Konsep Dasar Pemrograman Prosedural Disusun Oleh : Tim Pembina TOKI

Lebih terperinci

MENGUBAH DATA ORDINAL KE DATA INTERVAL DENGAN METODE SUKSESIF INTERVAL (MSI) Oleh: Jonathan Sarwono

MENGUBAH DATA ORDINAL KE DATA INTERVAL DENGAN METODE SUKSESIF INTERVAL (MSI) Oleh: Jonathan Sarwono MENGUBAH DATA ORDINAL KE DATA INTERVAL DENGAN METODE SUKSESIF INTERVAL (MSI) Oleh: Jonathan Sarwono Cara Penghitungan MSI Apa yang dimaksud dengan metode suksesif interval (Method of Successive Interval

Lebih terperinci

BAHAN AJAR ALGORITMA DAN PEMROGRAMAN I

BAHAN AJAR ALGORITMA DAN PEMROGRAMAN I BAHAN AJAR ALGORITMA DAN PEMROGRAMAN I OLEH: Budi Mulyono, S.Pd., M.Sc. Drs. Purwoko, M.Si. PENDIDIKAN MATEMATIKA FAKULTAS KEGURUAN DAN ILMU PENDIDIKAN UNIVERSITAS SRIWIJAYA i KATA PENGANTAR Bahan ajar

Lebih terperinci

Praktikum 2 Data File pada AWK

Praktikum 2 Data File pada AWK Praktikum 2 Data File pada AWK Tujuan Pembelajaran Mahasiswa dapat memahami dan menggunakan data file dalam bahasa pemrograman awk. Dasar Teori Kebanyakan program komputer bekerja dengan file. Hal ini

Lebih terperinci

Tipe Data. Definisi Tipe Data

Tipe Data. Definisi Tipe Data Tipe Data Definisi Tipe Data Dalam pemrograman pascal, semua peubah yang akan dipakai harus ditentukan tipe data yang digunakan karena akan berpengaruh terhadap operasi bilangan yang dapat dilaksanakan

Lebih terperinci

BAGIAN 1: M. F ACHRURROZI

BAGIAN 1: M. F ACHRURROZI KONSEP DAN APLIKASI PEMROGRAMAN MENGGUNAKAN BORLAND C++ BUILDER 6 BAGIAN 1: APLIKASI KONSOL M. F ACHRURROZI Daftar Isi MUQADDIMAH 1. PENDAHULUAN 2. KONSEP DASAR PEMROGRAMAN 3. INSTALASI DAN PENGENALAN

Lebih terperinci

Pendahuluan. Angka penting dan Pengolahan data

Pendahuluan. Angka penting dan Pengolahan data Angka penting dan Pengolahan data Pendahuluan Pengamatan merupakan hal yang penting dan biasa dilakukan dalam proses pembelajaran. Seperti ilmu pengetahuan lain, fisika berdasar pada pengamatan eksperimen

Lebih terperinci

Bundel Pembahasan Soal Olimpiade Sains Informatika

Bundel Pembahasan Soal Olimpiade Sains Informatika Bundel Pembahasan Soal Olimpiade Sains Informatika Disusun Oleh: Alumni Tim Olimpiade Komputer Indonesia 25-26 Mei 2012 Kata Pengantar Segala puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Esa.

Lebih terperinci

Bab 3. Proses Proses POKOK BAHASAN: TUJUAN BELAJAR: 3.1 KONSEP PROSES

Bab 3. Proses Proses POKOK BAHASAN: TUJUAN BELAJAR: 3.1 KONSEP PROSES Bab 3 Proses Proses POKOK BAHASAN: Konsep Proses Penjadwalan Proses Operasi pada Proses Kerjasama antar Proses Komunikasi antar Proses Thread TUJUAN BELAJAR: Setelah mempelajari materi dalam bab ini, mahasiswa

Lebih terperinci

PERTIDAKSAMAAN LINEAR SATU VARIABEL. Sumber: Dok. Penerbit

PERTIDAKSAMAAN LINEAR SATU VARIABEL. Sumber: Dok. Penerbit 4 PERSAMAAN DAN PERTIDAKSAMAAN LINEAR SATU VARIABEL Sumber: Dok. Penerbit Pernahkah kalian berbelanja alat-alat tulis? Kamu berencana membeli 10 buah bolpoin, sedangkan adikmu membeli 6 buah bolpoin dengan

Lebih terperinci

BAB 4 Dasar-Dasar Pemrograman

BAB 4 Dasar-Dasar Pemrograman BAB 4 Dasar-Dasar Pemrograman 4.1 Tujuan Pada bagian ini, kita akan mendiskusikan mengenai bagian dasar pemrograman java. Kita akan memulai dengan mencoba menjelaskan bagian dasar dari program Hello.java

Lebih terperinci

Fungsi (Function) Pendahuluan. Objektif. Bahan Bacaan

Fungsi (Function) Pendahuluan. Objektif. Bahan Bacaan Fungsi (Function) Pendahuluan Fungsi (function) adalah sub modul atau sub program yang dibuat untuk menyelesaikan hal tertentu. Fungsi memiliki nama dan dalam ANSI/C, diimplementasi untuk hal-hal yang

Lebih terperinci

PENERAPAN PROGRAM LINIER DALAM OPTIMASI BIAYA PAKAN IKAN DENGAN METODE SIMPLEKS (STUDI KASUS PT. INDOJAYA AGRINUSA MEDAN)

PENERAPAN PROGRAM LINIER DALAM OPTIMASI BIAYA PAKAN IKAN DENGAN METODE SIMPLEKS (STUDI KASUS PT. INDOJAYA AGRINUSA MEDAN) PENERAPAN PROGRAM LINIER DALAM OPTIMASI BIAYA PAKAN IKAN DENGAN METODE SIMPLEKS (STUDI KASUS PT. INDOJAYA AGRINUSA MEDAN) Beby Sundary (1011297) Mahasiswa Program Studi Teknik Informatika STMIK Budi Darma

Lebih terperinci

Draft Diktat Kuliah Dasar Pemrograman (Bagian Pemrograman Prosedural) Oleh : Inggriani Liem

Draft Diktat Kuliah Dasar Pemrograman (Bagian Pemrograman Prosedural) Oleh : Inggriani Liem Draft Diktat Kuliah Dasar Pemrograman (Bagian Pemrograman Prosedural) Oleh : Inggriani Liem Kelompok Keahlian Rekayasa Perangkat Lunak & Data (DSE) STEI - ITB Edisi April 2007 Halaman ini sengaja dibiarkan

Lebih terperinci

Bab 5 Memasukkan Saldo Awal

Bab 5 Memasukkan Saldo Awal Bab 5 : Memasukkan Saldo Awal Bab 5 Memasukkan Saldo Awal Dengan memasukkan saldo awal, maka Anda akan memiliki sebuah laporan neraca yang akurat, Anda dapat memantau perubahan modal Anda, sekaligus mengontrol

Lebih terperinci

Bab 10. Konsep Proses

Bab 10. Konsep Proses Bab 10. Konsep Proses 10.1. Pendahuluan Proses didefinisikan sebagai program yang sedang dieksekusi. Menurut Silberschatz proses tidak hanya sekedar suatu kode program ( text section), melainkan meliputi

Lebih terperinci

Analisis SI dan SKL Mata Pelajaran Matematika SMP/MTs untuk Optimalisasi Tujuan Mata Pelajaran Matematika

Analisis SI dan SKL Mata Pelajaran Matematika SMP/MTs untuk Optimalisasi Tujuan Mata Pelajaran Matematika Analisis SI dan SKL Mata Pelajaran Matematika SMP/MTs untuk Optimalisasi Tujuan Mata Pelajaran Matematika Penulis Dra. Sri Wardhani Penilai Dra. Th Widyantini, M.Si. Editor Titik Sutanti, S.Pd.Si. Ilustrator

Lebih terperinci

BAB II TEORI DASAR KOMPRESI GAMBAR. berupa foto, bersifat analog berupa sinyal-sinyal video seperti gambar pada monitor

BAB II TEORI DASAR KOMPRESI GAMBAR. berupa foto, bersifat analog berupa sinyal-sinyal video seperti gambar pada monitor BAB II TEORI DASAR KOMPRESI GAMBAR 2.1 Pendahuluan Citra adalah suatu representasi (gambaran), kemiripan, atau imitasi dari suatu objek. Citra sebagai keluaran suatu sistem perekaman data dapat bersifat

Lebih terperinci

Konsep Deret & Jenis-jenis Galat

Konsep Deret & Jenis-jenis Galat Metode Numerik (IT 402) Fakultas Teknologi Informasi - Universitas Kristen Satya Wacana Bagian 2 Konsep Deret & Jenis-jenis Galat ALZ DANNY WOWOR 1. Pengatar Dalam Kalkulus, deret sering digunakan untuk

Lebih terperinci

Struktur Data untuk Citra Digital dan Format Citra Bitmap

Struktur Data untuk Citra Digital dan Format Citra Bitmap Bab 3 Struktur Data untuk Citra Digital dan Format Citra Bitmap C itra digital diolah dengan menggunakan komputer, oleh karena itu kita perlu mendefinisikan struktur data untuk merepresentasikan citra

Lebih terperinci

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT email: okydn@undip.ac.id

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT email: okydn@undip.ac.id PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO Oky Dwi Nurhayati, ST, MT email: okydn@undip.ac.id Kinerja yang perlu ditelaah pada algoritma: beban komputasi efisiensi penggunaan memori Yang perlu

Lebih terperinci

MODUL AJAR Program Pendidikan Jarak Jauh D3 Teknik Komputer dan Jaringan

MODUL AJAR Program Pendidikan Jarak Jauh D3 Teknik Komputer dan Jaringan MODUL AJAR Program Pendidikan Jarak Jauh D3 Teknik Komputer dan Jaringan Oleh: Ali Ridho Barakbah POLITEKNIK ELEKTRONIKA NEGERI SURABAYA INSTITUT TEKNOLOGI SEPULUH NOPEMBER 2006 DAFTAR ISI BAB 1 Pengenalan

Lebih terperinci

OPERATING SYSTEM RAHMAD KURNIAWAN, S.T., M.I.T. UIN SUSKA RIAU

OPERATING SYSTEM RAHMAD KURNIAWAN, S.T., M.I.T. UIN SUSKA RIAU LOGO OPERATING SYSTEM ASSALAMU ALAIKUM CHAPTER 2 MANAJEMEN PROSES BY: RAHMAD KURNIAWAN, S.T., M.I.T. UIN SUSKA RIAU DESKRIPSI PROSES Definisi : Adalah program yang sedang dieksekusi Unit terkecil yang

Lebih terperinci

PRAKTIKUM 11 POINTER 1

PRAKTIKUM 11 POINTER 1 PRAKTIKUM 11 POINTER 1 A. Tujuan 1. Menjelaskan tentang konsep dari variabel pointer 2. Menjelaskan tentang pointer array 3. Menjelaskan tentang pointer string B. DASAR TEORI Konsep Dasar Pointer Variabel

Lebih terperinci

Modul Visual FoxPro 6.0- AMIK Bina Sarana Informatika 0. Di susun oleh : Team Penyusun Modul Visual Foxpro. Akademi Manajemen Informatika & Komputer

Modul Visual FoxPro 6.0- AMIK Bina Sarana Informatika 0. Di susun oleh : Team Penyusun Modul Visual Foxpro. Akademi Manajemen Informatika & Komputer Modul Visual FoxPro 6.0- AMIK Bina Sarana Informatika 0 Di susun oleh : Team Penyusun Modul Visual Foxpro Akademi Manajemen Informatika & Komputer Jakarta 2006 Modul Visual FoxPro 6.0- AMIK Bina Sarana

Lebih terperinci