• Tidak ada hasil yang ditemukan

Pemrograman Dasar C. Minggu 3

N/A
N/A
Protected

Academic year: 2021

Membagikan "Pemrograman Dasar C. Minggu 3"

Copied!
35
0
0

Teks penuh

(1)

Pemrograman Dasar C

Pemrograman Dasar C

Minggu 3

(2)

Peringatan Pertama

Peringatan Pertama

 Mario Hanson (0224002)Mario Hanson (0224002)  Sanny Wibisana (0224035)Sanny Wibisana (0224035)  Yunus Sajuti (0224047)Yunus Sajuti (0224047)

 Yudi Worman Saragih (0224071)Yudi Worman Saragih (0224071)  Cayadi (0224096)Cayadi (0224096)

 Fransiska Widjaya (0224109)Fransiska Widjaya (0224109)  Audi Caesar (0224123)Audi Caesar (0224123)

 Fendy (0224134)Fendy (0224134)

 Keke Boycke (0224157)Keke Boycke (0224157)  Frans Lesmana (0224167)Frans Lesmana (0224167)

(3)

Topik Bahasan

Topik Bahasan

 Membuat KeputusanMembuat Keputusan

– Tes ‘True’ / ‘False’Tes ‘True’ / ‘False’

– Memilih satu pilihan atau yang lainMemilih satu pilihan atau yang lain – Flow chartFlow chart

 Bilangan Riil – bilangan dengan komponen Bilangan Riil – bilangan dengan komponen pecahan

pecahan

– Tipe untuk Bilangan RiilTipe untuk Bilangan Riil

Input/Output untuk Bilangan RiilInput/Output untuk Bilangan RiilEkspresi campuranEkspresi campuran

(4)

Struktur Pilihan Pertama

Struktur Pilihan Pertama

Membuat keputusan:

Membuat keputusan:

Apakah saya belok kiri atau terus?Apakah saya belok kiri atau terus?

Ketika Nilai > atau = 40 berikan kredit 20Ketika Nilai > atau = 40 berikan kredit 20 » jika tidak, tidak ada kredit”jika tidak, tidak ada kredit”

(5)

Struktur ‘IF’ ‘ELSE’

Struktur ‘IF’ ‘ELSE’

if

if

(<test>)

(<test>)

dievaluasi benar (true) maka

dievaluasi benar (true) maka

lakukan ini

lakukan ini

atau

atau

else

else

if test dievaluasi salah (false)

if test dievaluasi salah (false)

lakukan yang ini

(6)

Struktur Pilihan Pertama

Struktur Pilihan Pertama

 Butuh sebuah ‘TRUE’ atau ‘FALSE’ ekspresi tes:Butuh sebuah ‘TRUE’ atau ‘FALSE’ ekspresi tes:

Operasi Relasi (x = 6, y = 7)

Operasi Relasi (x = 6, y = 7)

= =

= = samasama x = = yx = = y FALSEFALSE

! =

! = TDK samaTDK sama x ! = yx ! = y TRUETRUE >

> lbh besarlbh besar x > yx > y FALSEFALSE <

< lbh kecillbh kecil x < yx < y TRUETRUE <=

<= lbh kecil atau samalbh kecil atau sama x <= yx <= y TRUETRUE >=

>= lbh besar atau samalbh besar atau sama x >= yx >= y FALSEFALSE

• C menganggap FALSE sebagai ‘nol’ dan TRUE sebagai C menganggap FALSE sebagai ‘nol’ dan TRUE sebagai

bilangan integer “tidak nol”, maka (<test>) dapat berupa bilangan integer “tidak nol”, maka (<test>) dapat berupa

ekspresi matematika ekspresi matematika

(7)

Flow Chart: Perencanaan yg Baik

Flow Chart: Perencanaan yg Baik

Kotak Aksi

Kotak Aksi START

buat secangkir kopi ukur suhu Apakah > 80 C? “sajikan kopi” “Awas! masih panas!” Yes No Berlian Keputusan Kotak Input/Output

(8)

Statemen IF dalam C

Statemen IF dalam C

Sintaks:

Sintaks:

if

if

( tes true / false )

( tes true / false )

statemen tunggal;

statemen tunggal;

else

else

/* opsional */

/* opsional */

statemen tunggal;

(9)

Contoh

Contoh

if ( a == 10) if ( a == 10)

printf (“Telah menemukan sepuluh.”); printf (“Telah menemukan sepuluh.”); statement berikut;

statement berikut; if ( suhu > 80 )

if ( suhu > 80 )

printf (“Terlalu panas untuk diminum”); printf (“Terlalu panas untuk diminum”); else

else

printf (“Sajikan teh”); printf (“Sajikan teh”); if ( nilai < 40 )

if ( nilai < 40 )

{{ /* statemen compound *//* statemen compound */

printf (“tidak ada kredit”);printf (“tidak ada kredit”); kredit = 0;kredit = 0; } } else else kredit = 20; kredit = 20;

(10)

Tambahan untuk If

Tambahan untuk If

If yang bersarangIf yang bersarang

int in_num;

int in_num;

printf(“Masukkan jumlah mahasiswa: “);

printf(“Masukkan jumlah mahasiswa: “);

scanf(“%d”, &in_num); scanf(“%d”, &in_num); printf(“\nKita mempunyai “); printf(“\nKita mempunyai “); if (in_num > 100) if (in_num > 100) printf(“lebih dari 100 “); printf(“lebih dari 100 “); else if (in_num > 10) else if (in_num > 10) printf(“lebih dari 10 “); printf(“lebih dari 10 “); else if (in_num > 0) else if (in_num > 0) printf(“beberapa “);printf(“beberapa “); elseelse

printf(“tidak ada “);printf(“tidak ada “);

printf(“mahasiswa tahun ini”);

(11)

Tambahan untuk If

Tambahan untuk If

 Apabila kita masukkan “150” maka keluarannya Apabila kita masukkan “150” maka keluarannya menjadi

menjadi

Kita mempunyai lebih dari 100 mahasiswa tahun ini Kita mempunyai lebih dari 100 mahasiswa tahun ini

 Tapi kalau kita masukkan “7” maka keluarannya Tapi kalau kita masukkan “7” maka keluarannya menjadi

menjadi

Kita mempunyai beberapa mahasiswa tahun ini Kita mempunyai beberapa mahasiswa tahun ini

(12)

Operator Logika

Operator Logika

 && -AND- && -AND- (x && y) true jika keduanya true(x && y) true jika keduanya true

if ((width > 0) && (width < 100))

if ((width > 0) && (width < 100))

printf(“dalam kisaran 1 ke 99”);

printf(“dalam kisaran 1 ke 99”);

statemen berikutnya;

statemen berikutnya;

 | || | - OR - - OR - (x | | y) true jika salah satu atau (x | | y) true jika salah satu atau keduanya true keduanya true if((width > 22) | | (height > 40)) if((width > 22) | | (height > 40)) printf(“tidak masuk!”); printf(“tidak masuk!”); else else printf(“akan masuk!”); printf(“akan masuk!”);

(13)

Operator Logika

Operator Logika

!

!

- NOT -

- NOT -

( !(x > y))

( !(x > y))

pembalikan

pembalikan

membalik x > y menjadi x <= y

membalik x > y menjadi x <= y

if ( !(Tahanan > 100))

if ( !(Tahanan > 100))

printf(“Tahanannya = 100 atau

printf(“Tahanannya = 100 atau

kurang”);

kurang”);

(14)

Studi Kasus: Mengecek Kisaran

Studi Kasus: Mengecek Kisaran

Input

Input

Persyaratan

Persyaratan

Cek input hanya dalam kisaran 0 – 100 voltCek input hanya dalam kisaran 0 – 100 volt

Analisa

Analisa

Gunakan statemen Gunakan statemen ifif

Desain

Desain

(15)

Studi Kasus: Desain – Flow Chart

Studi Kasus: Desain – Flow Chart

Yes Yes Dapatkan Input Input < 0 OR > 100?

Program Bag. Lain Pesan Error

(16)

Studi Kasus: Implementasi

Studi Kasus: Implementasi

/* mulai program disini */

/* mulai program disini */

printf(“\nMasukkan voltase “); printf(“\nMasukkan voltase “); scanf(“%d”, &volts); scanf(“%d”, &volts); if ((volts < 0) | | (volts > 100)) if ((volts < 0) | | (volts > 100)) { { printf(“\nInput diluar”); printf(“\nInput diluar”);

printf(“ kisaran 0 – 100 volt”); printf(“ kisaran 0 – 100 volt”);

printf(“\nEnd”); printf(“\nEnd”); } } else else { {

/* bagian lain dari program */ /* bagian lain dari program */ }

(17)

Bilangan Riil

Bilangan Riil

 Bilangan Riil (real atau floating point)Bilangan Riil (real atau floating point)

dapat memiliki bagian pecahan, contoh PI: 3,1415dapat memiliki bagian pecahan, contoh PI: 3,1415dapat lebih kecil dari 1, contohnya 0,000345 Amperedapat lebih kecil dari 1, contohnya 0,000345 Ampere

 Dapat ditulis dalam bentuk “scientifik” atau Dapat ditulis dalam bentuk “scientifik” atau “eksponensial”

“eksponensial”

– bentuk scientifik z x 10bentuk scientifik z x 10yy

» contoh 3.45 x 10contoh 3.45 x 10-4-4

– bentuk eksponensial menggunakan ‘e’ menggantikan bentuk eksponensial menggunakan ‘e’ menggantikan ‘x10’

‘x10’

(18)

Bilangan Riil

Bilangan Riil

Istilah yang berguna

Istilah yang berguna

PresisiPresisi: jumlah desimal yang tersedia untuk : jumlah desimal yang tersedia untuk

mendefinisikan bilangan

mendefinisikan bilangan

» contoh 3.1415 menggunakan lima digit, berarti contoh 3.1415 menggunakan lima digit, berarti

membutuhkan sebuah floating point dengan presisi membutuhkan sebuah floating point dengan presisi paling tidak lima

paling tidak lima

KisaranKisaran: nilai maksimum dan minimum yang : nilai maksimum dan minimum yang

dapat disimpan didalamnya

dapat disimpan didalamnya » contoh 1.0 x 10contoh 1.0 x 10-5-5 ke 1.0 x 10 ke 1.0 x 10+5+5

(19)

Tipe Bilangan Riil dalam C

Tipe Bilangan Riil dalam C

float’

float’

dikenal sebagai presisi ‘tunggal’

dikenal sebagai presisi ‘tunggal’

(presisi minimum untuk 6 digit desimal).

(presisi minimum untuk 6 digit desimal).

Untuk C pada umumnya:

Untuk C pada umumnya:

– disimpan dalam 32 bitsdisimpan dalam 32 bits

– presisi dalam 7 digit desimalpresisi dalam 7 digit desimal

kisaran: 3.4 x 10kisaran: 3.4 x 10-38-38 ke 3.4 x 10 ke 3.4 x 10+38+38

cepat tapi presisi terkecil. Untuk perhitungan cepat tapi presisi terkecil. Untuk perhitungan

sains umum

(20)

Tipe Bilangan Riil dalam C

Tipe Bilangan Riil dalam C

double’

double’

dikenal sebagai presisi ‘dobel’

dikenal sebagai presisi ‘dobel’

(presisi minimum 10 digit desimal). Untuk

(presisi minimum 10 digit desimal). Untuk

C pada umumnya:

C pada umumnya:

– disimpan dalam 64 bitsdisimpan dalam 64 bits

– presisi dalam 15 digit desimalpresisi dalam 15 digit desimal

kisaran: 1.7 x 10kisaran: 1.7 x 10-308-308 ke 1.7 x 10 ke 1.7 x 10+308+308

lebih lambat tapi lebih baik untuk perhitungan lebih lambat tapi lebih baik untuk perhitungan

sains berakurasi tinggi

(21)

Tipe Bilangan Riil dalam C

Tipe Bilangan Riil dalam C

long double’

long double’

dikenal sebagai presisi

dikenal sebagai presisi

‘tambahan’ (minimal 20 digit desimal).

‘tambahan’ (minimal 20 digit desimal).

Untuk C pada umumnya:

Untuk C pada umumnya:

– disimpan dalam 80 bitsdisimpan dalam 80 bits

– presisi dalam 19 digit desimalpresisi dalam 19 digit desimal

kisaran: 3.4 x 10kisaran: 3.4 x 10-4932-4932 sampai 3.4 x 10 sampai 3.4 x 10+4932+4932

(22)

Kenapa Presisi Penting?

Kenapa Presisi Penting?

Misalnya kita mau menghitung biaya memproduksi sejuta mobil Misalnya kita mau menghitung biaya memproduksi sejuta mobil

buatan Ford

buatan Ford

– Misalnya biaya produksi sebuah mobil $ 4,342.52Misalnya biaya produksi sebuah mobil $ 4,342.52

– Misalnya variabel ‘cost’ dengan tipe float dipakai dengan presisi hanya 5 Misalnya variabel ‘cost’ dengan tipe float dipakai dengan presisi hanya 5

digit desimal

digit desimal

» Akan menyimpanAkan menyimpan

cost = 4.3425e+3

cost = 4.3425e+3

» Catatan: hanya 2 sen dollar setiap mobil yang dianggap hilangCatatan: hanya 2 sen dollar setiap mobil yang dianggap hilang

– Misal kita diminta menghitung biaya totalMisal kita diminta menghitung biaya total total_cost = cost * 1e+6;

total_cost = cost * 1e+6;

total cost = 4.3425e+9

total cost = 4.3425e+9 TAPITAPI nilai sebenarnya adalah $ 4,342,5

nilai sebenarnya adalah $ 4,342,5220,0000,000 kita telah kehilangan sebesar $ 20,000!!!!

kita telah kehilangan sebesar $ 20,000!!!!

Pilihlah presisi yang memang dibutuhkan! Contohnya penggaris 30cm, Pilihlah presisi yang memang dibutuhkan! Contohnya penggaris 30cm,

dapat dibaca sampai 1mm, jadi presisi yang dibutuhkan hanya 3 digit

(23)

Input dan Output Bilangan Riil

Input dan Output Bilangan Riil

scanf(“string kontrol”, argumen lain);

scanf(“string kontrol”, argumen lain);

Karakter konversi

Karakter konversi

Konversi ke

Konversi ke

%f

%f

float bentuk 21.3

float bentuk 21.3

%e

%e

float bentuk

float bentuk

2.13e+1

2.13e+1

tambah l (%le %lf)

tambah l (%le %lf)

untuk double

untuk double

tambah L (%Le %Lf)

(24)

Input dan Output Bilangan Riil

Input dan Output Bilangan Riil

printf(“string kontrol”, argumen lain);

printf(“string kontrol”, argumen lain);

Karakter konversi

Karakter konversi

Konversi ke

Konversi ke

%f (float atau double)

%f (float atau double)

floating point

floating point

‘1.27’

‘1.27’

%e (float atau double)

%e (float atau double)

eksponensial

eksponensial

‘1.27e-5’

‘1.27e-5’

tambah L (%Le %Lf)

tambah L (%Le %Lf)

untuk long

untuk long

double

(25)

Input dan Output Bilangan Riil

Input dan Output Bilangan Riil

 Lebar dan presisi (untuk Lebar dan presisi (untuk printfprintf))

– Antara ‘%’ dan ‘f’ (atau ‘e’) dapat ditambahkan lebar Antara ‘%’ dan ‘f’ (atau ‘e’) dapat ditambahkan lebar field dan spesifikasi presisi:

field dan spesifikasi presisi:

%<lebar field>.<presisi>e

%<lebar field>.<presisi>e

<lebar field> adalah jumlah MINIMUM dari space <lebar field> adalah jumlah MINIMUM dari space

karakter digunakan untuk semua bilangan (termasuk ‘.’ karakter digunakan untuk semua bilangan (termasuk ‘.’

dan ‘e’) dan ‘e’)

– <presisi> adalah jumlah MAKSIMUM digit setelah <presisi> adalah jumlah MAKSIMUM digit setelah titik desimal

titik desimal

– Tanda ‘-’ didepan <lebar field> berarti ‘justifikasi Tanda ‘-’ didepan <lebar field> berarti ‘justifikasi kekiri’

(26)

Contoh Bilangan Riil

Contoh Bilangan Riil

#include <stdio.h>

#include <stdio.h>

int main (void)

int main (void)

{ /* Deklarasi terlebih dahulu */

{ /* Deklarasi terlebih dahulu */

float radius, luas;

float radius, luas;

const float PI = 3.14159;

const float PI = 3.14159;

printf(“\nMasukkan radius dalam cm “);

printf(“\nMasukkan radius dalam cm “);

scanf(“%f”, &radius);

scanf(“%f”, &radius);

luas = PI * radius * radius;

luas = PI * radius * radius;

printf(“\nLuas lingkaran = %f”, luas);

printf(“\nLuas lingkaran = %f”, luas);

return (0);

return (0);

}

}

CATATAN: divide by zero (0.0) juga tidak boleh

CATATAN: divide by zero (0.0) juga tidak boleh

dalam

(27)

Ekspresi Tipe Campuran, Integer

Ekspresi Tipe Campuran, Integer

 Promosi Integer:Promosi Integer:

char x = 5; int z, y = 1345;

char x = 5; int z, y = 1345;

z = x * y; printf(“z = %d”, z);

z = x * y; printf(“z = %d”, z);

masing-masing bagian dari ekspresi dievaluasi dengan semuanya diubah ke

masing-masing bagian dari ekspresi dievaluasi dengan semuanya diubah ke

tipe integer

tipe integer terbesarterbesar, jadi hasilnya 6725 dan sesuai dengan variabel , jadi hasilnya 6725 dan sesuai dengan variabel penerima yaitu tipe

penerima yaitu tipe intint. .

 Hati-hati: apabila hasilnya terlalu besar untuk variabel Hati-hati: apabila hasilnya terlalu besar untuk variabel

penerima, hasilnya tidak berguna! penerima, hasilnya tidak berguna!

char x = 127; int z, y = 32000;

char x = 127; int z, y = 32000;

z = x * y; printf (“z=%d”, z);

z = x * y; printf (“z=%d”, z);

hasilnya seharusnya 4064000 tapi kita mendapatkan hasil z = 768 (karena

hasilnya seharusnya 4064000 tapi kita mendapatkan hasil z = 768 (karena

overflow)

(28)

Ekspresi Tipe Campuran, Integer

Ekspresi Tipe Campuran, Integer

Hati-hati dengan hasil antara yang tidak

Hati-hati dengan hasil antara yang tidak

sesuai dengan ekspresi keseluruhan:

sesuai dengan ekspresi keseluruhan:

char x = 127; int z, y = 3200;

char x = 127; int z, y = 3200;

z = x * y/x; printf(“z=%d”, z);

z = x * y/x; printf(“z=%d”, z);

yang seharusnya menghasilkan 32000

yang seharusnya menghasilkan 32000

tenyata hanya 6!!!

tenyata hanya 6!!!

solusi: membuat y bertipe

(29)

Ekspresi Tipe Campuran, Integer

Ekspresi Tipe Campuran, Integer

 Hati-hati dalam menggabungkan tipe Hati-hati dalam menggabungkan tipe signedsigned dan dan

unsigned

unsigned dalam sebuah ekspresi, memberikan nilai dalam sebuah ekspresi, memberikan nilai negatif pada bilangan unsigned tak mempunyai

negatif pada bilangan unsigned tak mempunyai

arti!

arti!

 Untuk tipe floating point, promosi yang serupa Untuk tipe floating point, promosi yang serupa

terjadi, tipe operan yang terbesar di dalam ekspresi

terjadi, tipe operan yang terbesar di dalam ekspresi

menyebabkan operan tipe yang lain diubah ke tipe

menyebabkan operan tipe yang lain diubah ke tipe

yang lebih besar:

yang lebih besar:

floatfloat dipromosikan ke dipromosikan ke doubledouble

(30)

Ekspresi Tipe Campuran, Integer

Ekspresi Tipe Campuran, Integer

Bahkan

Bahkan

pencampuran tipe

pencampuran tipe

integer dan floating

integer dan floating

point mengikuti

point mengikuti

aturan yang sama,

aturan yang sama,

kedua operan

kedua operan

dinaikkan ke tipe

dinaikkan ke tipe

terbesar

terbesar

long double double float

unsigned long int long int unsigned int int p r o m o s i

(31)

Cast: Memaksa Konversi Tipe

Cast: Memaksa Konversi Tipe

C menawarkan operator konversi untuk

C menawarkan operator konversi untuk

‘memaksa konversi’ dari satu tipe ke tipe

‘memaksa konversi’ dari satu tipe ke tipe

lain:

lain:

– sintaks: sintaks: (tipe) ekspresi;(tipe) ekspresi;

– Cast mempunyai urutan teratas dibandingkan Cast mempunyai urutan teratas dibandingkan

sifat perkalian dan asosiasi kanan ke kiri

(32)

Cast: Memaksa Konversi Tipe

Cast: Memaksa Konversi Tipe

 Perhatikan:Perhatikan:

int x = 5, y = 3; float w, z = 3.2;

int x = 5, y = 3; float w, z = 3.2;

w = z + x/y; printf (“w = %f”, w);

w = z + x/y; printf (“w = %f”, w);

Hasil seharusnya 4.866667 tapi hasil program 4.2! Hasil seharusnya 4.866667 tapi hasil program 4.2!

 Dengan aturan urutan, x/y dievaluasi pertama tapi Dengan aturan urutan, x/y dievaluasi pertama tapi evaluasi tipe int dari 5/3 adalah 1 dan bukan

evaluasi tipe int dari 5/3 adalah 1 dan bukan

1.666666! Maka 3.2 + 1 menghasilkan 4.2

(33)

Cast: Memaksa Konversi Tipe

Cast: Memaksa Konversi Tipe

Untuk memastikan pembagian dilakukan

Untuk memastikan pembagian dilakukan

menggunakan arithmatika Bilangan Riil

menggunakan arithmatika Bilangan Riil

(real), x di ‘cast’ menjadi tipe float

(real), x di ‘cast’ menjadi tipe float

w = z + (float) x / y;

w = z + (float) x / y;

Disini, karena

Disini, karena

(float) x

(float) x

dievaluasi terlebih

dievaluasi terlebih

dahulu, maka x menjadi float sehingga

dahulu, maka x menjadi float sehingga

x/y

x/y

dievaluasi sebagai float menghasilkan

dievaluasi sebagai float menghasilkan

1.666667 dan hasil akhirnya akan benar!

(34)

Ringkasan

Ringkasan

Membuat keputusan

Membuat keputusan

Tes ‘

Tes ‘

True’

True’

/ ‘

/ ‘

False’

False’

(tidak nol / nol)

(tidak nol / nol)

– Operator relasiOperator relasi

= = != > < <= >=

= = != > < <= >=

Operator logikaOperator logika

&& || !

&& || !

– Memilih satu opsi atau Memilih satu opsi atau elseelse lainnya lainnya

if (test) … ; else …;

if (test) … ; else …;

(35)

Ringkasan

Ringkasan

 Bilangan Riil (Real) – bilangan dengan komponen Bilangan Riil (Real) – bilangan dengan komponen pecahan

pecahan

– Tipe untuk Bilangan Riil: float, double, long doubleTipe untuk Bilangan Riil: float, double, long double – Presisi dan kisaranPresisi dan kisaran

» terlalu kecil, ada informasi yang hilangterlalu kecil, ada informasi yang hilang

» terlalu besar, menghabiskan memori dan waktuterlalu besar, menghabiskan memori dan waktu

– Input / Output untuk Bilangan RiilInput / Output untuk Bilangan Riil

» scanfscanf dan dan printfprintf

– Ekspresi campuran – promosiEkspresi campuran – promosi – Konversi tipe - castKonversi tipe - cast

Referensi

Dokumen terkait

Perubahan sosial ekonomi yang banyak terjadi pada kalangan para TKW adalah perubahan perilaku konsumsi yang cenderung konsumtif dan perubahan gaya hidup

Data yang diperoleh dianalisis dengan menggunakan sidik ragam dan dilanjutkan dengan Uji Beda Nyata Jujur (BNJ). Hasil analisis data menunjukkan bahwa varietas berbeda nyata

Sebab ada tiga yang memberi kesaksian (di dalam sorga: Bapa, Firman dan Roh Kudus; dan ketiganya adalah satu. Dan ada tiga yang memberi kesaksian di bumi): Roh dan air dan darah

Banyak hal yang kemudian berubah di abad 21 ini, percepatan di bidang ilmu pengetahuan dan teknologi, sistem komunikasi seperti mudahnya akses internet menjadi salah satu ciri abad

Kamu telah melakukan kerja sama secara berkelompok untuk mencari informasi tentang upaya-upaya yang dilakukan oleh bangsa Indonesia dalam mempertahankan kemerdekaan Indonesia..

Piutang (seringdisebut sebagai pinjaman dan piutang) adalah klaim uang, barang atau jasa kepada  pelangganatau pihak-pihak lainnya.Untuk tujuan pelaporan keuangan,

Produk yang diharapkan akan dihasilkan melalui penelitian pengembangan berupa model sarana pembelajaran atletik alat lempar cakram melalui modifikasi ukuran berat,

Penulis mengucapkan terimakasih kepada Pimpinan Balai Penelitian Perusahaan Perkebunan Gula (BP3G) yang telah mem- beri ijin penelitian di BP3G dan khususnya kepada karyawan