Rabu, 26 November 2014

Tugas Algoritma & Pemrograman 3

Program "Struk Belanja" Bahasa Pemrograman C/C++ :

ü   LISTING PROGRAM

/*PROGRAM STRUK BELANJA*/
/*membuat struk belanja*/

#include <stdio.h>
#include <conio.h>
#include <iostream.h>
main()

{
int jml, harga, tunai;
float jum_bayar, total, kembalian, jum_harga;
char produk [20];
double tot_beli, potongan;

puts("Masukan Nama Produk = "); gets(produk);
printf("Masukan Harga = "); scanf("%d",&harga);
printf("Masukan Jumlah Beli = "); scanf("%d",&jml);
printf("=====================================\n");
printf("\t Turner Mart \n");
printf("\t Ciputat \n");
printf("=====================================\n");
printf(" Nama Produk   = %s\n",produk);
printf(" Harga         = Rp. %d \n",harga);
printf(" Jumlah Beli   = Rp. %d \n",jml);
jum_harga = jml * harga;
printf (" Total Pembelian = Rp. %1.1f \n", jum_harga) ;
printf("===================================(+)\n");
cout <<"Total Pembelian Rp. ";
cin>>tot_beli;
if (tot_beli >= 200000)
potongan = 100000;
cout <<"besarnya potongan Rp."<<potongan<<endl;jum_bayar = tot_beli-potongan;

cout<<"jumlah yang harus dibayarkan Rp."<<jum_bayar;
printf(" \n Tunai         = Rp. ");scanf("%d",&tunai);
printf("===================================(-)\n");
kembalian=tunai-jum_bayar;
printf(" Kembalian     = Rp. %1.1f \n",kembalian);
printf("=====================================\n");
printf("\t Terima Kasih\n");
printf("-------------------------------------\n");
getch();
}


ü   LOGIKA PROGRAM

·    “#include <>” ialah sebagai library dan ini sangat wajib diperlukan pada kodingan program , kodingan tidak akan berjalan tanpa “#include<>” dan di atas saya mengunakan “#include <stdio.h>” berarti saya mengambil kosa kata dari stdio.h , contoh kosa kata yang termasuk dalam “stdio.h” adalah “printf”, dll.
·  #include<conio.h> , saya membutuhkan “conio.h” karena saya ingin menggunakan kosa kata getch();. #include iostream untuk diperlukan dalam program yang melibatkan perintah input-output , misal cout dan cin.
·     Puts digunakan untuk menampilkan data yang bertipe string dan secara otomatis akan pidah baris (new line). Gets untuk keperluan pemasukan data string yang panjang dipisahkan dengan spasi.
·      Lalu “… main “, sangat penting untuk koding , koding di atas tidak akan berjalan tanpa “… main”.
·   Printf , untuk mengeluarkan output. Scanf untuk menginput data baik berupa bilangan, karakter, ataupun kalimat secara terformat.
·   Disini akan saya jelaskan tentang program mengenai struk belanja. Jumlah, harga, dan tunai merupakan pendeklarasian variabel dalam integer. Jum_bayar, total, kembalian, dan jum_harga merupakan pendeklarasian variabel dalam float atau bilangan desimal. Produk merupakan pendeklarasian variabel dalam karakter yang ditentukan maksimum 20 karakter.  Tot_beli dan potongan merupakan pendeklarasian dalam double.
·     Pertama-tama kita masukkan nama produk, kemudian perintah untuk memasukkan harga dan jumlah beli. %d digunakan untuk menampilkan nilai decimal integer.
·   Lalu perintah untuk mencetak nama toko dan kota. Kemudian perintah untuk memasukkan nama produk, harga, dan jumlah beli. %s digunakan untuk menampilkan nilai string. \n untuk ganti baris baru (new line).
·     Untuk menghitung jumlah harga, dengan cara jml_harga = jumlah*harga.
·     Kemudian mencetak total pembelian dari hasil proses dalam menghitung jumlah harga.
·     Mulai pengecekan kondisi jika total beli >= 200000 maka akan mendapatkan potongan sebesar 100000, lalu mencetak besarnya potongan dan jum_bayarnya dihitung menjadi tot_beli – potongan, dan mencetak hasil tunainya. Dan untuk menghitung kembalian dengan tunai – jum_bayar, lalu mencetak besar kembaliannya.
·     Getch(); di gunakan untuk menahan tampilan , tetapi apabila anda pengguna visual studio anda tidak perlu menggunakan ini , karena tampilan nya sudah tertahan otomatis.


ü   OUTPUT PROGRAM






Minggu, 02 November 2014

Relative File_COBOL

 Berikut Coding, Listing dan Output untuk COBOL File Relatif :


Coding Program :
IDENTIFICATION DIVISION.
PROGRAM-ID. RELATIF.
AUTHOR. SUGIARTHA.
SECURITY. PROGRAM MEMASUKKAN DATA ORGANISASI FILE RELATIF.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT MAHASISWA ASSIGN TO DISK
ORGANIZATION IS RELATIVE
ACCESS MODE IS DYNAMIC, RELATIVE KEY IS LOKASI-REC
FILE STATUS IS STATUS-SALAH.
DATA DIVISION.
FILE SECTION.
FD MAHASISWA
LABEL RECORD IS STANDARD
VALUE OF FILE-ID IS ‘RELATIF.DAT’
DATA RECORD IS RECORD-MAHASISWA.
01 RECORD-MAHASISWA.
02 NAMA-MHS PIC A(25).
02 ALAMAT-MHS.
03 JALAN PIC X(20).
03 KOTA PIC A(15).
02 TGL-DAFTAR.
03 TANGGAL PIC 99.
03 BULAN PIC 99.
03 TAHUN PIC 99.
02 IP-MHS PIC 99V99.
WORKING-STORAGE SECTION.
77 LOKASI-REC PIC 99V99.
77 NO-MHS-MASUK PIC 9(5).
77 STATUS-SALAH PIC XX.
01 SUDAH-BENAR PIC X.
88 BENAR VALUE ‘Y’, ‘y’.
88 SALAH VALUE ‘T’, ‘t’.
01 MASUKKAN-LAGI-TIDAK PIC X.
88 LAGI VALUE ‘Y’, ‘y’.
88 TIDAK VALUE ‘T’, ‘t’.
01 RECORD-MAHASISWA-MASUK.
02 NAMA-MHS-MASUK PIC A(25).
02 ALAMAT-MHS-MASUK.
03 JALAN-MASUK PIC X(20).
03 KOTA-MASUK PIC A(15).
02 TGL-DAFTAR-MASUK.
03 TANGGAL-MASUK PIC 99.
03 BULAN-MASUK PIC 99.
03 TAHUN-MASUK PIC 99.
02 IP-MHS-MASUK PIC 99V99.
SCREEN SECTION.
01 HAPUS-LAYAR.
02 BLANK SCREEN.
01 LAYAR-DATA.
02 LINE 4 COLUMN 5 ‘NOMER MAHASISWA :’.
02 COLUMN PLUS 1 PIC 9(5) TO NO-MHS-MASUK REQUIRED.
02 LINE 6 COLUMN 5 ‘NAMA MAHASISWA :’.
02 COLUMN PLUS 1 PIC A(25) TO NAMA-MHS-MASUK.
02 LINE 8 COLUMN 5 ‘ALAMAT MAHASISWA :’.
02 LINE 9 COLUMN 5 ‘JALAN :’.
02 COLUMN PLUS 1 PIC X(20) TO JALAN-MASUK.
02 LINE 10 COLUMN 5 ‘KOTA :’.
02 COLUMN PLUS 1 PIC A(15) TO KOTA-MASUK.
02 LINE 12 COLUMN 5 ‘TANGGAL DAFTAR :’.
02 COLUMN PLUS 1 PIC 99 TO TANGGAL-MASUK AUTO.
02 COLUMN PLUS 1 ‘-‘.
02 COLUMN PLUS 1 PIC 99 TO BULAN-MASUK AUTO.
02 COLUMN PLUS 1 ‘-‘.
02 COLUMN PLUS 1 PIC 99 TO TAHUN-MASUK AUTO.
02 LINE 14 COLUMN 5 ‘INDEKS PRESTASI :’.
02 COLUMN PLUS 1 PIC 99V99 TO IP-MHS-MASUK.
PROCEDURE DIVISION.
RUTIN-UTAMA SECTION.
BUKA-FILE.
OPEN OUTPUT MAHASISWA.
MULAI.
MOVE SPACE TO SUDAH-BENAR.
PERFORM MASUKKAN-DATA UNTIL BENAR.
PERFORM REKAM-DATA.
PERFORM ADA-LAGI-TIDAK.
SELEKSI-MASUKKAN-LAGI-TIDAK.
IF LAGI
GO TO MULAI.
SELESAI.
CLOSE MAHASISWA
STOP RUN.
RUTIN-BAGIAN SECTION.
MASUKKAN-DATA.
DISPLAY HAPUS-LAYAR.
DISPLAY LAYAR-DATA.
ACCEPT LAYAR-DATA.
DISPLAY (18, 5) ‘SUDAH BENAR (Y/T) ? ‘.
ACCEPT ( , ) SUDAH-BENAR.
REKAM-DATA.
MOVE ‘ ‘ TO STATUS-SALAH.
COMPUTE LOKASI-REC = NO-MHS-MASUK – 8009.
WRITE RECORD-MAHASISWA FROM RECORD-MAHASISWA
PERFORM SELEKSI-REKAMAN.
ADA-LAGI-TIDAK.
DISPLAY (20, 5) ‘ADA LAGI DATA LAINNYA (Y/T) ? ‘.
ACCEPT ( , ) MASUKKAN-LAGI-TIDAK.
SELEKSI-REKAMAN.
IF STATUS-SALAH = ’22?
DISPLAY (18, 5) ‘TIDAK TEREKAM, NILAI KUNCI TIDAK UNIK’.
IF STATUS-SALAH = ’24?
DISPLAY (18, 5) ‘TIDAK TEREKAM, DISK PENUH’.



Logika Program :

Ada beberapa perbedaan  antara organisasi file relatif dengan organisasi file indeks, yaitu:
A.           Pada SELECT clause dalam ENVIRONMENT DIVISION:

FILE-CONTROL.
SELECT FILE-MHS ASSIGN TO DISK.
ORGANIZATION IS RELATIVE.
ACCES MODE IS DYNAMIC, RELATIVE KEY IS LOKASI-REC.
FILE STATUS IS STATUS-SALAH.

Entry dalam SELECT clause harus disebutkan ORGANIZATION IS RELATIVE. Sedangkan jika digunakan mode akses dinamik, maka harus disebutkan nama-data RELATIVE KEYnya. LOKASI-REC pada contoh program ini adalah nama-data yang dihubungkan dengan nomor record relaifnya.

B.             Nomor record relatif tersebut tidak menjadi bagian dari data record, tetapi disebutkan tersendiri dalam DATA DIVISION sebagai berikut:

77  LOKASI-REC     PIC 9999.

C.             Pada waktu merekamkan data, record data tersebut akan direkamkan pada posisi nomor record relatif yang disebutkan:

REKAM-DATA.
MOVE ‘  ‘   TO STATUS-SALAH.
COMPUTE LOKASI-REC = NO-MHS-MASUK – 8009.
WRITE RECORD-MAHASISWA FROM RECORD-MAHASISWA-MASUK.
PERFORM  SELEKSI-REKAMAN.
                                   
Tampak bahwa data akan direkamkan pada posisi nomor record relatif LOKASI-REC yang mempunyai hubungan dengan nomor mahasiswa, yaitu NO-MHS-MASUK dikurangi dengan nilai 8009.
Maksud dari hubungan ini adalah misalnya nomor mahasiswa 8010 akan direkamkan pada posisi nomor relative 1, nomor mahasiswa 8011 akan direkamkan pada posisi nomor record relatif 2 dan seterusnya.


Output Program :