SlideShare a Scribd company logo
import java.math.*;
class Anum2 {
public static void main(String args[]) {
float x = 1;
int counter = 0;
while (x + 1 > 1) {
x = x / 2;
++counter;
}
System.out.println(counter + " " + x);
}
}
Kelompok Diskusi 1B :
1. A. Fadhil Aprilianto - 1206241325
2. Fakhrirozi Sulaiman - 1206208095
3. Fiqie Budi Z - 1206243596
4. M. Devakto - 1206238671
5. Ridwan Arvihafiz – 1206208050
Discussion 1.b. : To infinity and beyond!
Say x = 1
While 1 + x is larger than 1, x = x / 2
 Does that algorithm terminate, although x never goes to zero? Why?
 For what value of x and how many iterations does the loop actually terminate?
Answer :
Untuk menjawab pertanyaan pertama apakah algoritma tersebut terminate atau tidak, kami terlebih
dahulu melakukan serangkaian percobaan untuk pertanyaan kedua agar mendapatkan kepastian dalam
menjawab pertanyaan pertama.
Dalam pertanyaan kedua, untuk mendapatkan nilai x dan berapa banyak iterasi yang dilakukan kami
melakukan serangkaian percobaan. Kami melakukannya melalui bahasa pemrograman Java dengan
beberapa tipe data primitif maupun bukan yang di compile melalui command prompt.
Percobaan 1. Data Type Float
Menghasilkan Output :
Dapat dilihat bahwa untuk data type float,
maka menghasilkan 24 kali iterasi dan x =
5.9604645E-8.
import java.math.*;
class Anum2 {
public static void main(String args[]) {
double x = 1;
int counter = 0;
while (x + 1 > 1) {
x = x / 2;
++counter;
}
System.out.println(counter + " " + x);
}
}
import java.math.*;
class Anum2 {
public static void main(String args[]) {
long x = 1;
int counter = 0;
while (x + 1 > 1) {
x = x / 2;
++counter;
}
System.out.println(counter + " " + x);
}
}
Percobaan 2. Data Type Double
Menghasilkan Output :
Dapat dilihat bahwa untuk data type double,
maka menghasilkan 53kali iterasi dan x =
1.1102230246251565E-16
Percobaan 3. Data Type Long
Menghasilkan Output :
Dapat dilihat bahwa untuk data type long,
maka menghasilkan 1kali iterasi dan x = 0
import java.math.*;
class Anum {
public static void main(String args[]) {
BigDecimal x = new BigDecimal(1);
int counter = 0;
while (new
BigDecimal(1).add(x).compareTo(new
BigDecimal(1)) > 0 && counter < 53) {
x = x.divide(new BigDecimal(2));
++counter;
}
System.out.println(counter + " " + x);
}
}
Dapat dilihat dari percobaan diatas bahwa setiap data type memiliki jumlah iterasi dan x yang berbeda-
beda. Dimana tipe data float menerapkan standar IEEE Single Precision dan tipe data double menerapkan
standar IEEE Double Precision. Hal ini disebabkan karena terdapat machine epsilon yang membatasi
bilangan titik ambang (floating point) yang dikenali oleh komputer. Untuk percobaan algoritma tersebut,
maka machine epsilon tersebut memiliki batas nilai sebesar dimana b merupakan
base dari bilangan tersebut yaitu 2 dan p merupakan precision dan nilainya tergantung dari tipe data
tersebut. Untuk batas nilai pada percobaan tersebut, maka komputer akan melakukan pula rounding by
nearest. Hal ini dibuktikan dengan melakukan percobaan berikut.
Percobaan 4. Big Decimal
Menghasilkan Output :
Dapat dilihat bahwa untuk data BigDecimal dengan
melakukan iterasi (precision) sebanyak jumlah tipe data
double, maka menghasilkan nilai yang lebih akurat. Hal
ini menunjukan bahwa terbukti terdapat rounding by
nearest untuk tipe data double.
Hal ini juga berlaku jika kita mengubah iterasi (precision)
pada code tersebut yakni sebanyak jumlah tipe data
float, maka menghasilkan nilai yang lebih akurat pula.
Dapat dilihat pada tipe data float, dilakukan
rounding by nearest pada saat x= 5.96046447…E-
8 sehingga dibulatkan menjadi x = 5.9604645E-8.
Sehingga dapat disimpulkan untuk menjawab pertanayaan kedua, diketahui bahwa nilai x pada saat
terminate tergantung pada tipe data atau dengan kata lain model representasi bilangan titik ambang
(floating point) dimana x akan berhenti melakukan loop pada x < machine epsilon dan banyaknya iterasi
(loop) tergantung dari precision atau mantissa dalam floating point sistem IEEE setelah di normalisasi.
import java.math.*;
class Anum {
public static void main(String args[]) {
BigDecimal x = new BigDecimal(1);
int counter = 0;
while (new
BigDecimal(1).add(x).compareTo(new
BigDecimal(1)) > 0 && counter < 1000000) {
x = x.divide(new BigDecimal(2));
++counter;
}
System.out.println(counter + " " + x);
}
}
Untuk menjawab pertanyaan pertama kami melakukan percobaan tambahan pada tipe BigDecimal,
Dapat dilihat hanya dengan mengganti kondisi
yang dibatasi hingga 1 juta saja algoritma
tersebut tidak terminate (setidaknya hingga
ditunggu > 1 jam).
Sehingga untuk menjawab pertanyaan pertama apakah algoritma akan terminate atau tidak, maka
algoritma tersebut akan terminate jika memiliki finite loop yakni saat x < machine epsilon, namun jika
algoritma tersebut tidak memiliki batasan berupa machine epsilon maka algoritma tersebut tidak akan
terminate. Machine epsilon digunakan karena dibutuhkan untuk membatasi pemakaian memori.
Nilai x tidak pernah ke 0 (setidaknya tidak untuk tipe data int, long, dsb karena sekali iterasi menghasilkan
0 seperti pada percobaan sebelumnya), karena terdapat machine epsilon pada setiap tipe data tersebut
yang merupakan bilangan positif terkecil dan merupakan maksimum relative error dari system titik
ambang (floating point) yang artinya jika ditambah atau dikurangi nilai tidak akan berubah (mentok)
sehingga tidak akan pernah sampai ke 0.
References :
1. Higham, N.J., Stability and Accuracy of Numerical Algorithms, SIAM.
2. Press, William H.; Teukolsky, Saul A.; Vetterling, William T.; and Flannery, Brian P.; Numerical Recipes
in Fortran 77, 2nd ed.
3. Basaruddin, T., Komputasi Numerik, LP FEUI.

More Related Content

DOCX
Analisa Rangkaian Listrik Menggunakan MATLAB
PDF
Panduan matlab
PDF
Cepat mahir dengan matlab
DOCX
Modul xiii dan xiv algo
PDF
Matematika Diskrit - 11 kompleksitas algoritma - 02
PDF
Praktik dengan matlab
PDF
Dasar matlab
DOC
Praktikum pemrograman modul i
Analisa Rangkaian Listrik Menggunakan MATLAB
Panduan matlab
Cepat mahir dengan matlab
Modul xiii dan xiv algo
Matematika Diskrit - 11 kompleksitas algoritma - 02
Praktik dengan matlab
Dasar matlab
Praktikum pemrograman modul i

What's hot (16)

PDF
Diktat MatLab
PDF
Matlab Tutorial Chapter 1
DOCX
Operasi dasar matlab job 1
PPT
Struktur Kontrol
PDF
Tutorial mat lab_teguhw
PDF
Tutorial matlab
PDF
Tutorial matlab libre
PDF
Matlab
PDF
Tugas 2 kelompok 1 pemograman komputer
DOCX
Membuat program kalkulator sederhana dengan matlab
PDF
Panduan_Belajar_Mandiri_MATLAB.pdf
PDF
PDF
Modul 1 pengenalan matlab
PDF
Pengenalan Matlab
PDF
Diktat Panduan Matlab
PPTX
Efisiensi algoritma
Diktat MatLab
Matlab Tutorial Chapter 1
Operasi dasar matlab job 1
Struktur Kontrol
Tutorial mat lab_teguhw
Tutorial matlab
Tutorial matlab libre
Matlab
Tugas 2 kelompok 1 pemograman komputer
Membuat program kalkulator sederhana dengan matlab
Panduan_Belajar_Mandiri_MATLAB.pdf
Modul 1 pengenalan matlab
Pengenalan Matlab
Diktat Panduan Matlab
Efisiensi algoritma
Ad

Viewers also liked (19)

PPTX
งาน2
PPT
Presentación 2 medio
PPT
Fórum Brasil-Coreia - Sergio Bampi
PDF
Testo 174 t datasheet
PPTX
Images
PPTX
Adventure sports in nepal
PPTX
Teknik Penyoalan dan Bina Ayat_Darjah 1
KEY
Parabens - Uma apresentação de agradecimento
DOC
Kecergasan fizikal
DOCX
Eng2
PDF
Borrows Museum/Cigar Box Exhibit Shoot
PDF
120888 advanced seo g
PDF
Petit Espai - Març 2015
PDF
About ISS
PPT
Experiencias levaduras
PDF
PELAJARAN MUAMALAT - ( TAJUK : GADAIAN )
DOCX
El videojuego es parte de mi escuela
PDF
Trådlös larm, Pitbull och Ninja
PDF
Caixaforum
งาน2
Presentación 2 medio
Fórum Brasil-Coreia - Sergio Bampi
Testo 174 t datasheet
Images
Adventure sports in nepal
Teknik Penyoalan dan Bina Ayat_Darjah 1
Parabens - Uma apresentação de agradecimento
Kecergasan fizikal
Eng2
Borrows Museum/Cigar Box Exhibit Shoot
120888 advanced seo g
Petit Espai - Març 2015
About ISS
Experiencias levaduras
PELAJARAN MUAMALAT - ( TAJUK : GADAIAN )
El videojuego es parte de mi escuela
Trådlös larm, Pitbull och Ninja
Caixaforum
Ad

Similar to Numerik (8)

PDF
Tugas algoritma
PPT
Algoritma matematika
PPTX
Numeric Data Type in Programming using Pseudocode
PPTX
bab3_alpro1.pptx
PPTX
Bab 4 konsep algoritma
DOCX
Mencari Nilai Modus Suatu Data Menggunakan Turbo Pascal
DOCX
Mencari Nilai Modus Suatu Data Menggunakan Turbo Pascal
PDF
Praktikum Pertemuan 2 ( Tipe Data Numerik )
Tugas algoritma
Algoritma matematika
Numeric Data Type in Programming using Pseudocode
bab3_alpro1.pptx
Bab 4 konsep algoritma
Mencari Nilai Modus Suatu Data Menggunakan Turbo Pascal
Mencari Nilai Modus Suatu Data Menggunakan Turbo Pascal
Praktikum Pertemuan 2 ( Tipe Data Numerik )

Recently uploaded (20)

PPTX
Saint Maximilian Kolbe, Polish friar, priest, missionary and martyr (indonesi...
PPTX
Pembelajaran-Mendalam-RTL-dan-Umpan-Baliknya.pptx
DOCX
Modul Ajar Deep Learning Prakarya Budidaya Kelas 12 SMA Terbaru 2025
PDF
Laporan On The Job TRaining PM KS Siti Hikmah.pdf
PDF
System Requirement Enterprise Resource Planning Peternakan Ayam dan Daftar Ju...
PPTX
Presentasi Al-Quran Hadits Kelompok XI.1
PPTX
PPT POLA PIKIR BERTUMBUH Grow Mindset_2025.pptx
PPTX
Patuh_Terhadap_Norma_PPKn_Kelas_7 oke.pptx
PPTX
Rancangan Aktualisasi Latsar CPNS Kementerian Agama 2025.pptx
PPTX
Perubahan Pengertian_Istilah _Pelatihan "Ketentuan TERBARU Pengadaan Pemerin...
PDF
2021 KREATIFITAS DNA INOVASI DALAM BERWIRAUSAHA.pdf
PPTX
Materi Besaran, Satuan, Pengukuran.pptx
PDF
Tren dan Isu Kebutuhan Soft Skill dan Hard Skill Tenaga Kesehatan di RS - dr....
DOCX
Modul Ajar Deep Learning PKN Kelas 10 SMA Terbaru 2025
PDF
Laporan On The Job TRaining PM KS Siti Hikmah.pdf
DOC
RPP Deep Learning _ MGMP Wilayah 1 (1).doc
PPTX
PPT Akidah Akhlak Kelompok 1 X-8 (4).pptx
PPTX
SEJARAH BENDERA MERAH PUTIH - MATERI PRAMUKA
PPTX
Sejarah-Kelahiran-Pancasila kelas 8.pptx
PPTX
Manajemen Risiko dalam Kegiatan Kepramukaan.pptx
Saint Maximilian Kolbe, Polish friar, priest, missionary and martyr (indonesi...
Pembelajaran-Mendalam-RTL-dan-Umpan-Baliknya.pptx
Modul Ajar Deep Learning Prakarya Budidaya Kelas 12 SMA Terbaru 2025
Laporan On The Job TRaining PM KS Siti Hikmah.pdf
System Requirement Enterprise Resource Planning Peternakan Ayam dan Daftar Ju...
Presentasi Al-Quran Hadits Kelompok XI.1
PPT POLA PIKIR BERTUMBUH Grow Mindset_2025.pptx
Patuh_Terhadap_Norma_PPKn_Kelas_7 oke.pptx
Rancangan Aktualisasi Latsar CPNS Kementerian Agama 2025.pptx
Perubahan Pengertian_Istilah _Pelatihan "Ketentuan TERBARU Pengadaan Pemerin...
2021 KREATIFITAS DNA INOVASI DALAM BERWIRAUSAHA.pdf
Materi Besaran, Satuan, Pengukuran.pptx
Tren dan Isu Kebutuhan Soft Skill dan Hard Skill Tenaga Kesehatan di RS - dr....
Modul Ajar Deep Learning PKN Kelas 10 SMA Terbaru 2025
Laporan On The Job TRaining PM KS Siti Hikmah.pdf
RPP Deep Learning _ MGMP Wilayah 1 (1).doc
PPT Akidah Akhlak Kelompok 1 X-8 (4).pptx
SEJARAH BENDERA MERAH PUTIH - MATERI PRAMUKA
Sejarah-Kelahiran-Pancasila kelas 8.pptx
Manajemen Risiko dalam Kegiatan Kepramukaan.pptx

Numerik

  • 1. import java.math.*; class Anum2 { public static void main(String args[]) { float x = 1; int counter = 0; while (x + 1 > 1) { x = x / 2; ++counter; } System.out.println(counter + " " + x); } } Kelompok Diskusi 1B : 1. A. Fadhil Aprilianto - 1206241325 2. Fakhrirozi Sulaiman - 1206208095 3. Fiqie Budi Z - 1206243596 4. M. Devakto - 1206238671 5. Ridwan Arvihafiz – 1206208050 Discussion 1.b. : To infinity and beyond! Say x = 1 While 1 + x is larger than 1, x = x / 2  Does that algorithm terminate, although x never goes to zero? Why?  For what value of x and how many iterations does the loop actually terminate? Answer : Untuk menjawab pertanyaan pertama apakah algoritma tersebut terminate atau tidak, kami terlebih dahulu melakukan serangkaian percobaan untuk pertanyaan kedua agar mendapatkan kepastian dalam menjawab pertanyaan pertama. Dalam pertanyaan kedua, untuk mendapatkan nilai x dan berapa banyak iterasi yang dilakukan kami melakukan serangkaian percobaan. Kami melakukannya melalui bahasa pemrograman Java dengan beberapa tipe data primitif maupun bukan yang di compile melalui command prompt. Percobaan 1. Data Type Float Menghasilkan Output : Dapat dilihat bahwa untuk data type float, maka menghasilkan 24 kali iterasi dan x = 5.9604645E-8.
  • 2. import java.math.*; class Anum2 { public static void main(String args[]) { double x = 1; int counter = 0; while (x + 1 > 1) { x = x / 2; ++counter; } System.out.println(counter + " " + x); } } import java.math.*; class Anum2 { public static void main(String args[]) { long x = 1; int counter = 0; while (x + 1 > 1) { x = x / 2; ++counter; } System.out.println(counter + " " + x); } } Percobaan 2. Data Type Double Menghasilkan Output : Dapat dilihat bahwa untuk data type double, maka menghasilkan 53kali iterasi dan x = 1.1102230246251565E-16 Percobaan 3. Data Type Long Menghasilkan Output : Dapat dilihat bahwa untuk data type long, maka menghasilkan 1kali iterasi dan x = 0
  • 3. import java.math.*; class Anum { public static void main(String args[]) { BigDecimal x = new BigDecimal(1); int counter = 0; while (new BigDecimal(1).add(x).compareTo(new BigDecimal(1)) > 0 && counter < 53) { x = x.divide(new BigDecimal(2)); ++counter; } System.out.println(counter + " " + x); } } Dapat dilihat dari percobaan diatas bahwa setiap data type memiliki jumlah iterasi dan x yang berbeda- beda. Dimana tipe data float menerapkan standar IEEE Single Precision dan tipe data double menerapkan standar IEEE Double Precision. Hal ini disebabkan karena terdapat machine epsilon yang membatasi bilangan titik ambang (floating point) yang dikenali oleh komputer. Untuk percobaan algoritma tersebut, maka machine epsilon tersebut memiliki batas nilai sebesar dimana b merupakan base dari bilangan tersebut yaitu 2 dan p merupakan precision dan nilainya tergantung dari tipe data tersebut. Untuk batas nilai pada percobaan tersebut, maka komputer akan melakukan pula rounding by nearest. Hal ini dibuktikan dengan melakukan percobaan berikut. Percobaan 4. Big Decimal Menghasilkan Output : Dapat dilihat bahwa untuk data BigDecimal dengan melakukan iterasi (precision) sebanyak jumlah tipe data double, maka menghasilkan nilai yang lebih akurat. Hal ini menunjukan bahwa terbukti terdapat rounding by nearest untuk tipe data double. Hal ini juga berlaku jika kita mengubah iterasi (precision) pada code tersebut yakni sebanyak jumlah tipe data float, maka menghasilkan nilai yang lebih akurat pula. Dapat dilihat pada tipe data float, dilakukan rounding by nearest pada saat x= 5.96046447…E- 8 sehingga dibulatkan menjadi x = 5.9604645E-8. Sehingga dapat disimpulkan untuk menjawab pertanayaan kedua, diketahui bahwa nilai x pada saat terminate tergantung pada tipe data atau dengan kata lain model representasi bilangan titik ambang (floating point) dimana x akan berhenti melakukan loop pada x < machine epsilon dan banyaknya iterasi (loop) tergantung dari precision atau mantissa dalam floating point sistem IEEE setelah di normalisasi.
  • 4. import java.math.*; class Anum { public static void main(String args[]) { BigDecimal x = new BigDecimal(1); int counter = 0; while (new BigDecimal(1).add(x).compareTo(new BigDecimal(1)) > 0 && counter < 1000000) { x = x.divide(new BigDecimal(2)); ++counter; } System.out.println(counter + " " + x); } } Untuk menjawab pertanyaan pertama kami melakukan percobaan tambahan pada tipe BigDecimal, Dapat dilihat hanya dengan mengganti kondisi yang dibatasi hingga 1 juta saja algoritma tersebut tidak terminate (setidaknya hingga ditunggu > 1 jam). Sehingga untuk menjawab pertanyaan pertama apakah algoritma akan terminate atau tidak, maka algoritma tersebut akan terminate jika memiliki finite loop yakni saat x < machine epsilon, namun jika algoritma tersebut tidak memiliki batasan berupa machine epsilon maka algoritma tersebut tidak akan terminate. Machine epsilon digunakan karena dibutuhkan untuk membatasi pemakaian memori. Nilai x tidak pernah ke 0 (setidaknya tidak untuk tipe data int, long, dsb karena sekali iterasi menghasilkan 0 seperti pada percobaan sebelumnya), karena terdapat machine epsilon pada setiap tipe data tersebut yang merupakan bilangan positif terkecil dan merupakan maksimum relative error dari system titik ambang (floating point) yang artinya jika ditambah atau dikurangi nilai tidak akan berubah (mentok) sehingga tidak akan pernah sampai ke 0. References : 1. Higham, N.J., Stability and Accuracy of Numerical Algorithms, SIAM. 2. Press, William H.; Teukolsky, Saul A.; Vetterling, William T.; and Flannery, Brian P.; Numerical Recipes in Fortran 77, 2nd ed. 3. Basaruddin, T., Komputasi Numerik, LP FEUI.