Rabu, Juli 15, 2015

Programming in C - Part 11: Latihan membuat program sederhana - imposisi

Saat ini, dengan modal ilmu programming yang sudah kita bahas selama ini, kita juga bisa membuat program yang lebih 'bermanfaat'. Kali ini kita akan membuat sebuah software yang akan memberikan deretan angka berupa nomor halaman yang dapat anda copy - paste ke dalam isian pencetakan semua word processor atau print pdf sehingga jika dicetak dan hasilnya dilipat maka akan membentuk sebuah buku dengan halaman yang kontinyu. Untuk anda yang masih belum paham mengenai imposisi ini silahkan baca :
  1. Kontribusi kecil untuk mengurangi kerusakan bumi: Software Imposisi
  2. Imposisi : mengatur ulang letak halaman untuk membuat buku siap cetak dengan psutils (baca pengantarnya saja. kecuali anda tertarik menggunakan psutils)
Studi kasus yang akan kita bahas adalah sbb :


Anda memiliki sebuah file word atau pdf yang terdiri dari 37 halaman. Anda diminta untuk mencetak file tersebut sehingga menjadi sebuah buku lipat tengah (booklet) yang berukuran A5 dengan menggunakan kertas A4. Catatan : ukuran A5 adalah setengan dari ukuran A4, sehingga jika anda melipat kertas A4 secara verikal (lipatannya pada garis horizontal posisi portrait), maka anda akan mendapatkan ukuran A5. Anda juga harus mempertimbangkan bahwa setiap lembar kertas yang dilipat akan menjadi 4 sisi yang dapat dicetak pada permukaanya. Jadi jumlah halaman yang dicetak sebaiknya dibuat menjadi kelipatan 4.

Sebelum anda melihat jawabannya, sebaiknya anda coba dulu sendiri. Jika mengalami kesulitan silahkan lihat penyelesaiannya di bawah ini

/* =======================================
 * Contoh Membuat program imposisi
 * Created by: Sastrawan
 * Topik : Membuat nomor halaman cetak untuk pembuatan buku
 * ========================================
 */


 /* logika yang akan digunakan untuk program ini
  *
  * Buat jumlah halaman yang diinput menjadi kelipatan 4 terdekat, misalnya
  * jika user mengetik 7, maka program harus membuatnya menjadi 8 dst
  * Hal ini karena setiap sati halaman cetak akan dibuat
  * menjadi 8 sisi seperti pada lembaran buku lipat tengah.
  *
  * Lakukan loop dengan mengambil sepasang angka yaitu angka pertama (1)
  * dan lanjutkan dengan angka terakhir (misalnya 8).
  * Selanjutnya ambil angka berikutnya dari awal (misalnya 2) dan
  * ambil angka berikutnya dari belakang (misalnya 7)
  * Lanjutnkan looping sampai semua halaman berpasangan.
  *
  */
 
 #include<stdio.h>

 int main( int argc, char *argv[])
 {
  
    int jumlahHalaman ;
  
  
    printf("Imposisi \n") ;
    printf("Membuat nomor halaman siap cetak untuk membuat buku\n") ;
    printf("\n==================================================\n") ;
  
printf("\nTulis Jumlah halaman dokumen anda : ") ;
        scanf("%d",&jumlahHalaman)  ;
      
        // Jika jumlah halaman yang diinputkan tidak kelipatan 4,
        // maka dibuat menjadi kelipatan 4 sbb
          
        if(jumlahHalaman%4) {
             jumlahHalaman += (4 - (jumlahHalaman % 4));
        }
      
    printf("Jumlah halaman anda : %d \n\n", jumlahHalaman);
    printf("Halaman imposisi: \n");
  
    int jumlahLoop = jumlahHalaman /2 ;
    int i;
    for (i=1 ; i<=jumlahLoop; i++)
    {
          printf("%d,",i) ;                // Cetak halaman depan
          printf("%d",jumlahHalaman);    // Cetak halaman belakang
        
          jumlahHalaman-- ;                // Halaman belakang bergerak mundur
          if (i==jumlahHalaman) break ;     //tidak mencetak koma
                                            // pada akhir deretan
          printf(",");
        
    }
  
  
    return 0 ;
}
 

Output :

Imposisi
Membuat nomor halaman siap cetak untuk membuat buku

==================================================

Tulis Jumlah halaman dokumen anda : 37
Jumlah halaman anda : 40

Halaman imposisi:
1,40,2,39,3,38,4,37,5,36,6,35,7,34,8,33,9,32,10,31,11,30,12,29,13,28,14,27,15,26,16,25,17,24,18,23,19,22,20,21

Perhatikan bahwa baris

if (i==jumlahHalaman) break ; 
   
adalah sebuah trik agar tidak mencetak koma pada angka terakhir sehingga pada saat di copy-paste tidak ada masalah pada word processor yang anga gunakan untuk mencetak. Anda bisa menghilangkan baris tersebut dengan resiko akan mendapat tambahan tanda koma pada akhir sbb :

Imposisi
Membuat nomor halaman siap cetak untuk membuat buku

==================================================

Tulis Jumlah halaman dokumen anda : 37
Jumlah halaman anda : 40

Halaman imposisi:
1,40,2,39,3,38,4,37,5,36,6,35,7,34,8,33,9,32,10,31,11,30,12,29,13,28,14,27,15,26,16,25,17,24,18,23,19,22,20,21,

Untuk mendapatkan hasil cetak yang maksimal, dokumen sebaiknya dirancang dari awal agar memiliki jumlah halaman kelipatan 4

0 comments:

Posting Komentar

Write your comment here