Desain Class Dan Analisis Operator Pada Class Integer Tak Terbatas

dokumen-dokumen yang mirip
Tipe Data dan Variabel. Dosen Pengampu Muhammad Zidny Naf an, M.Kom

Perbandingan Algoritma Golub Kahan dan QR Simetri untuk Dekomposisi Nilai Singular

Lecture Notes Algoritma dan Pemrograman

PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR

JAVA BASIC PROGRAMMING Joobshet

BAB 3 TYPE DATA, VARIABLE DAN OPERATOR

PENCARIAN SOLUSI TTS ANGKA DENGAN ALGORITMA RUNUT BALIK BESERTA PENGEMBANGANNYA

MODUL DUA VARIABEL DAN TIPE VARIABEL

TIPE DATA, VARIABLE, dan OPERATOR DELPHI

Dasar Pemrograman Java

Variabel, Tipe Data, dan Operator. Oleh : Edi Sugiarto, S.Kom, M.Kom

Makalah. STRUKTUR DATA ( Array )

SOAL PASCAL A. 1. Lengkapi Source Code Dibawah ini : {* Program Menghitung dengan Operator Matematika*}

Badiyanto, S.Kom., M.Kom. PBO java

VARIABEL, TIPE DATA, KONSTANTA, OPERATOR DAN EKSPRESI. Pemrograman Dasar Kelas X Semester 2

Konsep tipe data pada bahasa pemrograman mempunyai standar bentuk umum, yaitu :

Tabel Informasi. Hal di atas dapat dilakukan dengan menambah dan mengambil atribut identifier yang digunakan pada program, melalui tabel informasi.

ANALISIS ALGORITMA. Disusun Oleh: Analisis Masalah dan Running Time. Adam Mukharil Bachtiar Teknik Informatika UNIKOM

DCH1B3 Konfigurasi Perangkat Keras Komputer

Kompleksitas Algoritma Rank Sort dan Implementasi pada Parallel Programming Dengan Menggunakan OpenMP

Quis. Contoh. Definisi Konsep Part 1,2 Part 3 Part 4. Oleh : Hasan Sanlawi, S.Kom. STMIK Pranata Kampus E : Materi Kuliah STRUKTUR DATA

Brigida Arie Minartiningtyas, M.Kom

MATA KULIAH : LOGIKA DAN ALGORITMA KONSEP DASAR ALGORITMA

P 4 Bab 3 : Dasar Pemrograman C

Tipe Data dan Variabel

DCH1B3 Konfigurasi Perangkat Keras Komputer

Soal hari Jumat (16/10) Latihan 10 MS

TIPE DATA PADA JAVA. Pertemuan (K-04/L-04)

Arsitektur dan Organisasi Komputer

Struktur Bahasa C dan C++

P5 Variabel, Tipe Data dan Operator

BAB-2 : TIPE DATA, VARIABEL DAN OPERATOR

PENGANTAR KOMPUTER DAN TEKNOLOGI INFORMASI 1A

Identifier, Keywords, Variabel, Tipe Data Primitif dan Operator PBO. Ramos Somya

Variabel, Operator Dan Ekspresi. Agus Priyanto, M.Kom

OPERATOR BAHASA C. Obyektif : 4. Mengetahui macam-macam operator dalam Bahasa C. 5. Mengetahui dan dapat menggunakan format pada tiap tipe data..

PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA

Algoritma dan Struktur data

Analisis Algoritma Knuth Morris Pratt dan Algoritma Boyer Moore dalam Proses Pencarian String

Variabel merupakan tempat untuk menyimpan nilai sementara dari suatu perhitungan. Untuk mendeklarasikan sebuah variabel digunakan pernyataan :

DATA KOMPUTASI & SISTEM BILANGAN

BAB 4 PENGENALAN BAHASA C

Algoritma Pemrograman & Struktur Data

BAB III ANALISIS DAN PERANCANGAN APLIKASI 3.1 ANALISIS

Keyword,Tipe data & Variabel. Keywords pada c Tipedata Variabel Konstanta

Algoritma dan Pemrograman. Pertemuan Ke-4 Konsep Tipe Data, Operator Dan Identifier

Percabangan & Perulangan


3. Elemen Dasar C++ S. Indriani S. L., M.T L.,

Type Data terdiri dari : - Data Tunggal : Integer, Real, Boolean dan Karakter. - Data Majemuk : String

Sebuah algoritma tidak saja harus benar, tetapi juga harus mangkus (efisien). Algoritma yang bagus adalah algoritma yang mangkus.

KAJIAN PENERAPAN OPERASI BITWISE PADA STEGANOGRAFI

Tipe Data dan Variabel

Tujuan Instruksional. Mahasiswa mampu :

Struktur Data. Pertemuan 2

Bab 7 Komponen Dasar Visual Basic 29 BAB VII KOMPONEN DASAR VISUAL BASIC TUJUAN PRAKTIKUM

Kuliah Online : TEKKOM [2013/VI]

Elemen Bahasa Pemrograman. Aditya Rizki Yudiantika, M.Eng.

PERTEMUAN 7 REVIEW (QUIZ)

TIPE DATA DAN VARIABLE

Tipe Data dan Operator dalam Pemrograman

Minggu III STRUKTUR PEMILIHAN (KONTROL PROGRAM)

Penerapan Algoritma Brute Force pada permainan Countdown Number

Kuliah III - Dasar Pemrograman

TIPE DATA DAN VARIABLE

1. Integer Interger adalah data numerik yang tidak mengandung pecahan, dan disajikan dalam memori komputer sebagai angka bulat. Mengacu pada obyek

MODUL 3 PRAKTIKUM PEMROGRAMAN VISUAL VARIABEL, TIPE DATA, DAN OPERATOR PADA VB.NET

Pert 3: Algoritma Pemrograman 1 (Alpro1) 4 sks. By. Rita Wiryasaputra, ST., M. Cs.

KOMPLEKSITAS ALGORITMA PENGURUTAN (SORTING ALGORITHM)

SISTEM BILANGAN, OPERASI ARITMATIKA DAN PENGKODEAN

BAHASA PEMROGRAMAN JAVA PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM YOGYAKARTA

MATERI/BAHAN PRAKTIKUM PENDAHULUAN DAN PENGENALAN (IDENTIFIER)

Algoritma Euclidean dan Struktur Data Pohon dalam Bahasa Pemrograman LISP

PERTEMUAN 2 ALGORITMA & PEMROGRAMAN

LAB PEMROGRAMAN I (JAVA FUNDAMENTAL) PERTEMUAN 3 Dosen : Bella Hardiyana S. Kom

Aplikasi Rekursif dalam Analisis Sintaks Program

Software yang digunakan yaitu: 1. Sistem Operasi Windows 7 2. Bloodshed Dev-C Notepad++ 4. Winmerge

Perulangan, Percabangan, dan Studi Kasus

SUMBER BELAJAR PENUNJANG PLPG

PENGKODEAN ARITMETIKA UNTUK KOMPRESI DATA TEKS (Arithmetic Coding for Text Compression)

Studi Mengenai Perbandingan Sorting Algorithmics Dalam Pemrograman dan Kompleksitasnya

BAB I PENGANTAR ALGORITMA

BAB III ANALISIS KOMPLEKSITAS ALGORITMA

12/29/2011. Algoritme dan Pemrograman. Bit. Bitwise operator

Tipe Data dan Operator

STEI Institut Teknologi Bandung

Analisa dan Perancangan Algoritma. Ahmad Sabri, Dr Sesi 1: 9 Mei 2016

Kompleksitas Algoritma Pengurutan Selection Sort dan Insertion Sort

a. TRUE b. FALSE c. Jawaban A dan B keduanya dimungkinkan benar d. Tidak dapat ditentukan e. Tidak ada jawaban di antara A, B, C, D yang benar

SOAL C++ Created by Yuli Astuti,S.Kom Copyright 2009

Pemrograman. Pertemuan-3 Fery Updi,M.Kom

PEMANFAAT FUNGSI SQR DAN SQRT UNTUK PERHITUNGAN BESARAN VEKTOR DAN HAMBATAN AC. Ulul Ilmi *)

BAB 1 PENGANTAR SISTEM KOMPUTER

Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya.

SISTEM DIGITAL Dalam Kehidupan Sehari-hari PADA KALKULATOR

MODUL II. OBJECK, PROPERTY, METHOD dan EVENT

BAB V b SISTEM PENGOLAHAN DATA KOMPUTER (Representasi Data) "Pengantar Teknologi Informasi" 1

Tipe Data. Definisi Tipe Data

Teori Algoritma TIPE DATA

PENGANTAR ALGORITMA DAN PEMROGRAMAN

Transkripsi:

J. Math. and Its Appl. ISSN: 1829-605X Vol. 1, No. 2, Nov. 2004, 21 27 Desain Class Dan Analisis Operator Pada Class Integer Tak Terbatas Bandung Arry Sanjoyo Jurusan Matematika FMIPA - ITS email:bandung@matematika.its.ac.id Ringkasan Pada makalah ini dibahas tentang representasi bilangan bulat (integer) dengan ukuran digit yang sangat besar. Representasi data dan operasi yang terkait diwujudkan dalam bentuk class integer. Struktur data yang digunakan untuk menyimpan bilangan berupa list (array) of character. Sedangkan operator-operator terkait yang bekerja pada integer adalah perbandingan, penjumlahan, pengurangan, perkalian dan pembagian. Analisis operator dibahas secara analitis. Keyword: Class, integer, worstcase. 1. Pendahuluan Dalam sistem bilangan, bilangan integer (bulat) 0, +1, +2, banyak dipakai dalam berbagai bidang termasuk dalam bidang sain, teknik, social, ataupun humaniora. Implementasi bilangan integer dalam komputer terbatas pada berapa besar bit yang dialokasikan untuk interger tersebut. Berbagai macam bahasa pemrograman yang ada saat ini, seperti Visual C++, Visual Basic, Matlab dan lainnya, memberikan tempat dimemori untuk menyimpan integer sebesar 64bit. Oleh karena itu bilangan integer terbesar yang dapat disimpan tidak dapat melebihi 2 63 1, untuk di Matlab maksimal 2 53 1 atau kalau dalam digit decimal tidak lebih dari 16 digit[3]. 21

22 Desain Class Dan Analisis Operator Permasalahan sekuritas data (encryption, decryption) akan melibatkan bilangan prima (bagian dari integer) dengan jumlah digit yang sangat besar. Semakin besar bilangan prima yang dipilih, keamanan datanya lebih terjamin. Kerterlibatan integer ini selalu diikuti dengan kebutuhan akan operator seperti penjumlahan, pengurangan, perkalian, dan pembagian, atau bahkan lebih dari operator yang disebutkan tadi. Oleh karena itu, dalam makalah ini akan disajikan bagaimana merepresentasikan integer yang sangat besar (tak terbatas) dan bagaimana mendefinisikan proses operasi pada interger tersebut. 2. Representasi Integer Himpunan, 2, 1, 0, 1, 2, 3, merupakan himpunan bulangan bulat (integer) dan biasa dinotasikan dengan Z. Sehingga nilai integer bisa mendekati tak berhingga atau banyaknya digit pada integer tersebut sangat besar. Dalam representasi di memori komputer, integer dialokasikan dalam berbagai kapasitas tempat memori (1 byte hingga 8 byte). Integer 2 byte disimpan dalam format sebagai berikut[3]. Bilangan terkecil dan terbesar yang dapat disimpan dalam integer 2 byte adalah -32,768 sampai dengan 32,767. Untuk kapasitas integer 64 bit atau 8 byte, nilai integer dapat ditampung adalah 9,223,372,036,854,775,808 sampai dengan 9,223,372,036,854,775,807. Oleh karena itu untuk integer yang lebih dari 19 digit (integer tak terbatas) tidak mampu ditampung. Penyimpanan integer tak terbatas disimpan dalam bentuk sederetan karakter yang dinamis atau array of character. Bentuk representasi di atas dapat dinyatakan dalam bentuk struktur data berikut ini. class intbig { private: char Sign; char* dint; public: /* metoda, operator */ } Integer i=-111112222233333444445555566666777778888899999 direpresentasikan

Bandung Arry Sanjoyo 23 dalam bentuk berikut ini. Dengan struktur data seperti di atas, integer dengan banyak digit sembarang akan bias ditampung. Namun demikian terbatas juga pada besarnya free memory yang tersedia. 3. Pembentukan Class Integer Tak Terbatas Suatu hal yang mendasar dalam desain class adalah identifikasi objek (benda) dan kerja/operasi yang bekerja pada objek tersebut. Pada integer dikenali: i. Objek: tanda bilangan (+/-) atau disimbolkan dengan Sign, dan ii. Operasi: (a) Pendefinisian objek atau constructor. (b) Operasi perbandingan: untuk membandingkan dua integer besar. (c) Operasi penjumlahan: untuk menjumlahkan dua buah integer besar. (d) Operasi pengurangan: untuk mengurangkan dua buah integer besar. (e) Operasi perkalian: untuk mengalikan dua buah integer besar. (f) Operasi pembagian: untuk membagi dua buah integer besar. (g) Operasi menampilkan integer besar. Operasi yang selain disebutkan di atas belum dibahas dalam penelitian ini. Identifikasi di atas dapat dinyatakan dalam suatu bentuk desain class integer besar (intbig) sebagai berikut. class intbig { private: char Sign; /* unt simpan tanda + atau - */ char* dint; /* unt simpan sederet digit int */ public: int operator<(intbig n); int operator<=(intbig n); int operator>(intbig n); int operator>=(intbig n); int operator==(intbig n); intbig operator+(intbig n); intbig operator-(intbig n); intbig operator*(intbig n); intbig operator/(intbig n); display(intbig n); };

24 Desain Class Dan Analisis Operator 4. Desain Dan Analisis Algoritma Untuk Operator Pada Class Integer Tak Terbatas Strategi atau metoda dari operasi perbandingan, pengurangan dan penjumlahan dapat dilihat pada Bandung A.S. [1]. Dalam penelitian ini akan dibuat algoritma untuk perkalian dan pembagian. Algoritma Perkalian Ada beberapa cara mengalikan dua buah integer, diantaranya adalah penjumlahan berulang dan metoda geser kiri. Penjumlahan berulang Perkalian dua integer a b, dapat dilakukan dengan cara sebagai berikut. a b = b + b +... + b, penjumlahan b dengan b dikumulasikan sebanyak a kali. Strategi demikian dapat diimplementasikan sebagai berikut. Input : integer besar a dan b. Output : integer besar r. perkalian(a,b) r=0; for i=1 to a do r=r+b; end for; end of perkalian; Dalam worst case, algoritma diatas bekerja sebanyak a buah penjumlahan integer besar. Untuk kasus dimana nilai a jauh lebih besar dari pada panjang s, dilakukan perbaikan algoritma sebagai berikut. Metoda Geser Kiri ini sudah dikenal sejak sekolah dasar, dan digambar dengan contoh berikut ini. 321*1234 dilakukan dengan cara: 321 1234 ------------ * 1284 963* 642** 321*** ------------ + 396114 Pada contoh diatas a b, integer yang dikalikan a = 321 dan pengali b = 1234. Integer a dikalikan dengan setiap digit pada integer b, dari digit paling kanan ke kiri. Pada setiap perkalian dilakukan pergeseran satu digit ke kiri. Dan

Bandung Arry Sanjoyo 25 selanjutnya dilakukan penjumlahan terhadap hasil perkalian dari setiap digit n. Strategi perkalian di atas dapat dikodekan sebagai berikut. Input : integer besar a dan b, dengan m = a dan n = b Output : integer besar r. Perkalian(a,b,m,n) r = 0; for i = 1 to m d = ai; temp = 0; for j = 1 to d temp = temp + b; end; r = r + temp; r=concate(r, 0 ); end; end of perkalian; Dalam worst case, algoritma diatas bekerja 10m buah operasi jumlah dan concate. Untuk kasus dimana nilai m < n akan bekerja lebih cepat dari pada m > n. Algoritma Pembagian Metoda Pengurangan Berulang Pembagian dua integer a/b, dapat dilakukan dengan cara sebagai berikut: a/b = a b b... b, pengurangan a dengan b sebanyak n kali, n adalah hasil pembagian. Strategi demikian dapat diimplementasikan sebagai berikut. Input : integer besar s dan d, dengan s > d > 0 Output : integer besar m. pembagian(s,d) r=s; m=0; while r < d do r=r-d; m=m+1; end while end of pembagian; Dalam worst case, algoritma diatas bekerja s/d. Untuk kasus dimana nilai s/d jauh lebih besar dari pada panjang s, dilakukan perbaikan algoritma sebagai berikut.

26 Desain Class Dan Analisis Operator Metoda Paragapit Cara pembagian paragapit s/d digambarkan dengan contoh berikut ini. Strategi pembagian di atas dikodekan sebagai berikut. Input : integer besar s dan d, dengan s > d > 0, m = s dan n = d Output : integer besar hasil pembagian(s,d,m,n) temp=s(1:n]; pt=n; hasil= ; if temp < d then temp=cancate(temp,s(pt+1)); pt=pt+1; for i=pt to m do r=temp; j=0; while r < d do r=r-d; j++; hasil=concate(hasil,j); if i < n then temp=concate(r,s[i+1]); end for end of pembagian; Dalam worst case, algoritma diatas bekerja kurang dari mn n 2 + n = O(mn).

Bandung Arry Sanjoyo 27 5. Kesimpulan (a) Integer yang dinyatakan dalam class berbentuk sederetan karakter 0 9 memungkinkan untuk menyimpan integer dengan panjang digit tak terbatas sesuai kemampuan memori computer. (b) Operator perkalian integer dengan integer dapat dilakukan dengan kecepatan proses 10 banyaknya digit pada integer yang dioperasikan. (c) Operator pembagian integer dengan integer dapat dilakukan dengan kecepatan proses tidak lebih dari mn n 2 + n. Pustaka [1] Bandung Arry S, 2004, Handout Kuliah Matematika Komputasi, Pasca Sarjana Program Studi Matematika. [2] Kamin, 1996, S.N. dan Reinghold, E.M., Programming With Class - A C++ Introduction to Computer Science, The McGraw-Hill Companies, Inc., International Edition. [3] Brian Brown, 1984-2000, Data Structures And Number Systems, http://www.ibilce.unesp.br. [4], 2001-2003, The Long Division Algorithm, http://www.mathpath.org/algor.