0

Perintah SELECT pada MySql

Posted by jujur on 8:40 PM
Perintah SELECT pada MySql biasanya digunakan untuk menampilkan data yang berada di dalam tabel. Perintah SELECT mempunyai banyak sekali variasi. Mungkin bisa disebut perintah yang mempunyai variasi paling banyak di antara perintah-perintah lainnya.
Seperti yang kita ketahui bahwa MySql adalah sebuah RDBMS(Relational Database Management System) yang artinya bahwa tabel-tabel tersebut bisa ber-relasi/tidak ber-relasi dengan tabel lainnya. Tadi sudah dikatakan bahwa perintah SELECT adalah untuk menampilkan data yang berada di dalam tabel. Pertanyaannya adalah bagaimana jika ingin melihat isi tabel yang ber-relasi dengan tabel lainnya. Jawabannya adalah tentu bisa. Hal tersebut nantinya akan kita sebut sebagai Join Table dengan menggunakan perintah SELECT. Ada berapa banyak jenis/model dari Join Table..?? Sampai saat ini yang saya tahu baru 2 macam saja, yaitu : Inner Join dan Outer Join. Namun kali ini kita tidak akan membahas Join Table. Dari tadi cerita melulu, kapan nie belajarnya? 

create database belajar;

use belajar;


create table mahasiswa (
nim int(5) not null auto_increment,
nama varchar(25) not null,
pendaftaran varchar(5) not null,
fakultas varchar(35) not null,
jurusan varchar(35) not null,
primary key(nim));


Jika table tersebut di deskripsikan maka seperti berikut :

mysql> show tables;
+-------------------+
| Tables_in_belajar |
+-------------------+
| mahasiswa         |
+-------------------+
2 rows in set (0.00 sec)

mysql> desc mahasiswa;
+-------------+-------------+------+-----+---------+----------------+
| Field       | Type        | Null | Key | Default | Extra          |
+-------------+-------------+------+-----+---------+----------------+
| nim         | int(5)      | NO   | PRI | NULL    | auto_increment |
| nama        | varchar(25) | NO   |     | NULL    |                |
| pendaftaran | varchar(5)  | NO   |     | NULL    |                |
| fakultas    | varchar(35) | NO   |     | NULL    |                |
| jurusan     | varchar(35) | NO   |     | NULL    |                |
+-------------+-------------+------+-----+---------+----------------+
5 rows in set (0.01 sec)

Tabel sudah berhasil dibuat. Sekarang saatnya kita masukkan beberapa data ke dalam tabel tersebut lalu kita olah dengan perintah SELECT. Perintah INSERT yang berguna untuk memasukkan/input data ke dalam tabel.
INSERT INTO nama_table VALUES 
('isi-kolom-1','isi-kolom-2','isi-kolom-3','isi-kolom-4',dst...),
('isi-kolom-1','isi-kolom-2','isi-kolom-3','isi-kolom-4',dst...),
('isi-kolom-1','isi-kolom-2','isi-kolom-3','isi-kolom-4',dst...);

perintah di atas di gunakan jika ingin meng-input data yang tidak hanya 1 baris kedalam table. Jika hanya ingin mengisi data 1 baris saja, maka cukup dengan perintah.

INSERT INTO nama_table VALUES 
('isi-kolom-1','isi-kolom-2','isi-kolom-3','isi-kolom-4',dst...);
 Kenapa kolom pertama pada tabel malah dikosongkan/tidak diisi? karena kolom pertama pada tabel tersebut sudah dibuat auto_increment. Langsung kita praktekan perintah SELECT.
  •  Bentuk umum perintah select

select [kolom-yang-ingin-ditampilkan] from [nama tabel]
where [condition];
 *penggunaan where[condition] merupakan opsional/pilihan/tidak wajib, gunakan jika memang dibutuhkan.

  • Menampilkan semua data dalam sebuah table
    select * from mahasiswa; 

    • Menampilkan data dalam kolom tertentu


      select nama,fakultas,jurusan from mahasiswa; 
       
       
      Menampilkan data dalam kolom tertentu dengan kondisi tertentu 
       
      select nama,jurusan from mahasiswa where pendaftaran=2001; 
          jika kondisi merupakan sebuah string, jangan lupa memberi tanda kutip satu seperti contoh di bawah ini

          select nama,jurusan from mahasiswa where fakultas='ilmu komputer';

      Contoh di atas jika dipraktekkan, maka tampilannya akan seperti di bawah ini :
      mysql> select * from mahasiswa;
      +-----+------+-------------+-----------------+--------------------+
      | nim | nama | pendaftaran | fakultas        | jurusan            |
      +-----+------+-------------+-----------------+--------------------+
      |   1 | joko | 2000        | ilmu komputer   | teknik informatika |
      |   2 | yuli | 2000        | ilmu komputer   | sistem informasi   |
      |   3 | yuni | 2001        | ilmu komunikasi | broadcasting       |
      |   4 | yana | 2001        | ilmu kedokteran | dokter hewan       |
      +-----+------+-------------+-----------------+--------------------+
      4 rows in set (0.00 sec)

      mysql> select nama,fakultas,jurusan from mahasiswa;
      +------+-----------------+--------------------+
      | nama | fakultas        | jurusan            |
      +------+-----------------+--------------------+
      | joko | ilmu komputer   | teknik informatika |
      | yuli | ilmu komputer   | sistem informasi   |
      | yuni | ilmu komunikasi | broadcasting       |
      | yana | ilmu kedokteran | dokter hewan       |
      +------+-----------------+--------------------+
      4 rows in set (0.00 sec)

      mysql> select nama,jurusan from mahasiswa where pendaftaran=2001;
      +------+--------------+
      | nama | jurusan      |
      +------+--------------+
      | yuni | broadcasting |
      | yana | dokter hewan |
      +------+--------------+
      2 rows in set (0.02 sec)

      mysql> select nama,jurusan from mahasiswa where fakultas='ilmu komputer';
      +------+--------------------+
      | nama | jurusan            |
      +------+--------------------+
      | joko | teknik informatika |
      | yuli | sistem informasi   |
      +------+--------------------+
      2 rows in set (0.00 sec)

      Demikian contoh penggunaan perintah SELECT dengan beberapa variasi. Saya berharap dari beberapa contoh variasi diatas, anda dapat menarik kesimpulan penggunaan perintah SELECT. Perintah SELECT dengan fungsi menggabungkan beberapa tabel akan dibahas lain waktu. Semoga bermanfaat.
     

0

Model Relasional, Skema Database Beserta Contohnya

Posted by jujur on 8:19 PM
1.      Pendahuluan
Model relasional merupakan model data yang saat ini banyak digunakan para pengembang sistem. Model ini memudahkan programmer membuat aplikasi atau perangkat lunak, selain bentuknya yang sederhana, model ini juga mudah dipahami jika dibandingkan dengan model data lainnya seperti network model atau hirarki model.
Database relasional terdiri dari beberapa tabel dimana setiap tabel memiliki nama yang unik atau tidak sama satu sama lainnya. Baris dalam tabel merepresentasikan sebuah keterhubungan dari beberapa nilai yang ada.
Contoh model relasional:
Mahasiswa
NPM
Nama
Alamat
Agama
23513084 M. Iqbal Parabi Lampung Islam
23513085 Ozvari Arsalan Baturaja Kristen
23513086 Blasius Neri Yogyakarta Kristen
23513087 Ridho Jakarta Budha
23513088 Kanda Januar Palembang Hindu
23513089 Andi Bandung Kristen
23513090 Irwan Pontianak Kristen
Mata Kuliah
Kode_MK
Mata_Kuliah
SKS
IF0354 Manajemen Informasi
3
IF0987 Algoritma dan Pemrograman
2
IF0433 Secure SDLC
2
IF0556 Pengenalan Pola
2
Nilai
NPM
Kode_MK
MID
UAS
23513084 IF0354
60
80
23513087 IF0987
70
70
23513088 IF0987
70
70
23513090 IF0556
80
90
Contoh di atas merupakan model relasional akademik sederhana, dimana terdapat 3 tabel: Mahasiswa, Mata Kuliah dan Nilai. Masing-masing tabel memiliki nilai yang berbeda. Keterhubungan antara tabel Mahasiswa dan Mata Kuliah terdapat pada tabel Nilai dimana terdapat NPM yang berasal dari tabel Mahasiswa dan Kode_MK yang berasal dari tabel Mata Kuliah.
2.      Skema Database
Ketika berbicara tentang database, kita harus dapat membedakan antara skema database dan contoh database. Pada bagian pendahuluan bukan merupakan skema database, melainkan contoh database yang berisi snapshot atau cuplikan sebagian data pada database yang diberikan secara instan untuk menggambarkan database tersebut.
Secara umum skema database berisi list dari atribut pada domain tertentu. Sebagai contoh terdapat sebuah tabel Mahasiswa yang digambarkan pada tabel berikut.
Mahasiswa
NPM
Nama
Alamat
Agama
23513084 M. Iqbal Parabi Lampung Islam
23513085 Ozvari Arsalan Baturaja Kristen
23513086 Blasius Neri Yogyakarta Kristen
23513087 Ridho Jakarta Budha
23513088 Kanda Januar Palembang Hindu
23513089 Andi Bandung Kristen
23513090 Irwan Pontianak Kristen
Skema database untuk relasi Mahasiswa di atas adalah:
Mahasiswa (NPM, Nama, Alamat, Agama)
3.      Keys
Untuk membedakan tiap tuple yang terdapat dalam sebuah relasi tabel tentunya kita harus memiliki sebuah kunci yang membedakan satu tuple dengan tuple yang lain. Keys tersebut harus bersifat unik. Terdapat beberapa istilah pada Keys, yaitu Superkey, Candidate Keys, Primary Key dan Foregin Key.
Superkey adalah adalah sekumpulan atribut yang secara unik mengidentifikasi sebuah tupel dalam tabel relasi. Berdasarkan contoh tabel Mahasiswa sebelumnya, superkey yang mungkin adalah (NPM), (NPM, Nama), (NPM, Alamat), (Nama, Alamat), dan (NPM, Nama, Alamat).
Candidate Keys adalah gabungan dari superkey yang jika dimungkin bergabung dapat membuat sesuatu yang unik. Berdasarkan contoh superkey sebelumnya, candidate key yang mungkin adalah (NPM) dan (Nama, Alamat). Atribut Nama dan Alamat dapat dijadikan candidate key jika kombinasi keduanya bisa menjadi pengidentifikasi yang unik untuk sebuah tabel relasi.
Primary Key adalah candidate key yang dipilih sebagai pengidentifikasi unik sebuah tabel relasi. Berdasarkan contoh candidate key sebelumnya, primary key yang dipilih adalah (NPM), karena nilai NPM sangat unik dan tidak ada 2 mahasiswa yang memiliki NPM yang sama.
Foreign Key adalah atribut yang berada pada sebuah tabel relasi yang merupakan primary key dari tabel relasi lain. Sebagai contoh pada tabel Nilai terdapat NPM atau Kode_MK. Kode_MK dapat dikatakan sebagai foreign key karena Kode_MK merupakan primary key dari tabel relasi Mata Kuliah.
4.      Skema Diagram
Skema database yang memiliki relasi satu sama lain dan di dalamnya terdapat primary key dan foreign key bisa digambarkan dengan Skema Diagram. Salah satu contoh skema diagram dapat dilihat pada gambar berikut.
Skema Diagram Universitas
Skema Diagram Universitas
Contoh skema diagram di atas berisi informasi setiap tabel yang memiliki primary key dan foreign key tertentu yang kemudian saling berhubungan satu sama lain sehingga membentuk sebuah skema basis data yang lengkap.
5.      Bahasa Query
Bahasa query adalah bahasa yang digunakan untuk menerjemahkan informasi yang diminta oleh user dari database. Bahasa query dapat dibedakan menjadi 2 janis: prosedural dan non-prosedural. Pada bahasa query prosedural, user menginstruksikan sistem untuk menjalankan operasi secara sekuensial untuk mendapatkan hasil yang diinginkan. Sedangkan bahasa query non-prosedural, user hanya mendeskripsikan informasi yang diinginkan tanpa memberikan prosedurnya secara spesifik untuk mendapatkan informasi tersebut.
6.      Operasi Relasional
Operasi relasional adalah operasi yang digunakan untuk menampilkan data yang diinginkan oleh user. Operasi ini menggunakan bahasa query. Misalkan user ingin menampilkan mahasiswa yang beragama Islam, maka akan tampil data:
Mahasiswa
NPM
Nama
Alamat
Agama
23513084 M. Iqbal Parabi Lampung Islam
23513085 Ozvari Arsalan Baturaja Kristen
23513087 Ridho Jakarta Budha
23513088 Kanda Januar Palembang Hindu
Dalam operasi relasional juga terdapat istilah join, yaitu menggabungkan 2 tabel atau lebih ke dalam satu perintah query untuk menghasilkan informasi tertentu. Selain itu, terdapat juga istilah natural join yang berarti gabungan dari 2 tabel atau lebih yang memiliki kesamaan tertentu namun antara kedua tabel tersebut semua atribut diseleksi atau ditampilkan. Contohnya kita akan melakukan seleksi tabel mahasiswa beserta nilainya yang mengambil mata kuliah tertentu.
NPM
Nama
Alamat
Agama
Kode_MK
MID
UAS
23513087 Ridho Jakarta Budha IF0987
70
70
23513088 Kanda Januar Palembang Hindu
IF0987
70
70

0

Penerapan Vigenere cipher di pemograman C

Posted by jujur on 5:59 AM
Vigenere cipher adalah salah satu jenis kriptografi klasik yang pada dasarnya adalah melakukan substitusi cipher abjad majemuk (polyalphabetic substitution), yaitu mengubah plaintext dengan kunci tertentu  biasanya berupa sebuah kata atau kalimat yang berulang sepanjang plaintext sehingga didapatkan ciphertext. Tetapi salah satu kelemahan dari cipher ini adalah ia mudah diserang dengan metode Kasiski untuk mengetahui panjang huruf yang digunakan sebagai kunci. Untuk lebih memperkuat cipher ini, banyak modifikasi dilakukan oleh para peneliti. Salah satu cara yang saya ajukan sebagai tugas makalah ini adalah Vigenere cipher dengan metode pembangkitan kunci dengan menggunakan bilangan euler. Pada dasarnya, metode ini adalah sebuah cara untuk mendapatkan suatu kunci berbentuk acak yang digenerate dari perkalian matematis antara kunci yang dimasukkan dengan bilangan Euler. Diharapkan dengan metode ini, kunci yang dihasilkan untuk Vigenere cipher menjadi lebih panjang dan acak sehingga akan menyulitkan kriptanalisis untuk menyerang dengan metode Kasiski maupun dengan analisis frekuensi.



Cara Kerja Program

Program Vigenere cipher akan mengubah plain text dengan kunci tertentu dengan kata yang  maupun kalimat yang lain melewati suatu proses perhitungan dari program Vigenere cipher. Misalnya pada sandi Caesar dengan geseran 3, A menjadi D, B menjadi E and dan seterusnya. Sandi Vigenère terdiri dari beberapa sandi Caesar dengan nilai geseran yang berbeda. Untuk menyandikan suatu pesan, digunakan sebuah tabel alfabet yang disebut table vigenere.
 

Tabel Vigenère berisi alfabet yang dituliskan dalam 26 baris, masing-masing baris digeser satu urutan ke kiri dari baris sebelumnya, membentuk ke-26 kemungkinan sandi Caesar. Setiap huruf disandikan dengan menggunakan baris yang berbeda-beda, sesuai kata kunci yang diulang.
Cara Pemrosesan Program
Misalnya ,plainteks yang hendak disandikan adalah perintah “Sari kaya”
            Sarikaya
Sedangkan kata kunci adalah "Roti"
“roti” akan di ulang dengan plainteks menjadi “rotiroti”
Huruf pertama pada plainteks, S, disandikan dengan menggunakan baris berjudul R, huruf pertama pada kata kunci. Pada baris R dan kolom S di tabel Vigenère, terdapat huruf J . Demikian pula untuk huruf kedua, digunakan huruf yang terletak pada baris O (huruf kedua kata kunci) dan kolom A (huruf kedua plaintext), yaitu huruf O. Proses ini dijalankan terus sehingga di peroleh hasil :

0

Pengertian, Macam - macam, dan Penggunaan Linked List dalam C++

Posted by jujur on 5:34 AM

Pengertian, Macam - macam, dan Penggunaan Linked List dalam C++

Linked list adalah sekumpulan elemen bertipe sama, yang mempunyai keterurutan tertentu, yang setiap elemennya terdiri dari dua bagian Linked list juga merupakan suatu cara untuk menyimpan data dengan struktur sehingga dapat secara otomatis menciptakan suatu tempat baru untuk menyimpan data yangdiperlukan. Struktur ini lebih dinamis karena banyaknya elemen dengan mudah ditambah atau dikurangi, berbeda dengan array yang ukurannya tetap. berikut gambaran kecil mengenai linked list.



Didalam Linked List terdapat beberapa bagian lagi

       1. Linked List Circular


Double Linked List 

       Pengertian secara umumnya DLLC itu Linked list yang menggunakan pointer, dimana setiap node memiliki 3 field, yaitu:
1 field pointer yang menunjuk pointer berikutnya "next",
1 field menunjuk pointer sebelumnya " prev ", 
1 field yang berisi data untuk node tersebut .

Double Linked List Circular pointer next dan prev nya menunjuk kedirinya sendiri secara circular. Bentuk Node DLLC















#include #include typedef struct{ char kode[12], artis[20], jenis_musik[40];char judul_lagu[30];}data_musik;data_musik music, tmpmusic;void inputData();void bukaData();void editData();void cariData();void hapusData();int main(int argc, char *argv[]){ int menuPilihan; while(menuPilihan !=0){                      system("CLS");    do{        printf("\n");        printf("=========================================\n");        printf("|        Data Musik          |\n");     printf("=========================================\n");        printf("|                                       |\n");        printf("|      1. Masukan Data                  |\n");     printf("|      2. Tampil Data                   |\n");     printf("|      3. Search                        |\n");     printf("|      4. Edit Data                     |\n");     printf("|      5. Hapus Data                    |\n");     printf("|      0. Exit                          |\n");        printf("=========================================\n");        printf("Masukan Pilihan [0..5] : ");scanf("%d",&menuPilihan);  system("CLS"); }while(menuPilihan < 0 || menuPilihan > 5);   switch(menuPilihan){  case 1:inputData();break;  case 2:bukaData();break;  case 3:cariData();break;  case 4:editData();break;  case 5:hapusData();break; }system("PAUSE");    }  return 0;}void inputData(){     system("CLS");     FILE *pfiledata;     pfiledata=fopen("data.txt","ab");     char kode[12],artis[20],jenis_musik[100];     int i=5,ketemu=0;     printf("==========================================\n");     printf("|        Input Nama Artis             |\n");     printf("==========================================\n");     printf(" kode musik            : ");fflush(stdin);gets(music.kode);     printf(" Nama Artis            : ");fflush(stdin);gets(music.artis);     printf(" Jenis Musik           : ");fflush(stdin);gets(music.jenis_musik);     printf("Judul lagu             : ");fflush(stdin);gets(music.judul_lagu);     printf("==========================================\n");     fwrite(&music,sizeof(music),1,pfiledata);     fclose(pfiledata);}void cariData(){     system("CLS");     FILE *pfiledata;     pfiledata=fopen("data.txt","rb");     char x[20];     int ketemu;     char jawab;     printf("==================================\n");     printf("|    Masukan Berdasarkan Nama    |\n");     printf("|                                |\n");     printf("|    Masukan Nama Artis :\n");     printf("==================================\n");     fflush(stdin);gets(x);     system("CLS");     fread(&music,sizeof(music),1,pfiledata);     ketemu=0;     do{     if(strcmpi(music.artis,x)==0)              {                printf("|          Data Data Musik       |\n");                printf("===========================================\n");                printf("    kode          : %s     \n",music.kode);                printf("    Nama Artis      : %s     \n",x);                printf("    Jenis Musik     : %s   \n",music.jenis_musik);                printf("    Judul Lagu      : %s  \n \n",music.judul_lagu);                printf("===========================================\n");   ketemu=1; }                fread(&music,sizeof(music),1,pfiledata);                }while(!feof(pfiledata));                if(!ketemu)              {                  printf("DATA TIDAK DITEMUKAN\n\n");     }     fclose(pfiledata);}void editData(){  system("CLS");  FILE *pfiledata, *pfiletemp;  pfiledata=fopen("data.txt","rb");  pfiletemp=fopen("datatemp.txt","wb");  char x[10];  int ketemu;  char jawab;  printf("=====================================================\n");  printf("|                                                   |\n");  printf("|       Cari Data Berdasarkan kode Lapangan         |\n");  printf("|              Masukan kode                         |\n");  printf("|                                                   |\n");  printf("=====================================================\n");  fflush(stdin);gets(x);  system("CLS");  fread(&music,sizeof(music),1,pfiledata);  ketemu = 0;  jawab = 'Y';     do     {        if(strcmpi(music.kode,x)==0)          {            printf("===========================================\n");            printf("|           EDIT DATA Data Musik |\n");            printf("===========================================\n");            printf("    kode            : %s                  \n",x);            printf("    Nama Artis      : %s                   \n",music.artis);            printf("    Jenis Musik     : %s                   \n",music.jenis_musik);            printf("    Judul Lagu      : %s                    \n",music.judul_lagu);            printf("===========================================\n");            printf("|       APAKAH KAMU YAKIN  ? [Y/T] :        |\n");            printf("===========================================\n");            scanf("%c",&jawab);                  if(toupper(jawab)=='Y')                    {                       system("CLS");                       printf(" kode                 : ");fflush(stdin);gets(music.kode);                       printf(" Nama Artis          : ");fflush(stdin);gets(music.artis);                       printf(" Jenis Musik         : ");fflush(stdin);gets(music.jenis_musik);                       printf(" Judul Lagu          : ");fflush(stdin);gets(music.judul_lagu);                       fwrite(&music,sizeof(music),1,pfiletemp);                       ketemu=1;                    }                  else                       fwrite(&music,sizeof(music),1,pfiletemp);                }      else                   {                      fwrite(&music,sizeof(music),1,pfiletemp);                   }       fread(&music,sizeof(music),1,pfiledata);     }while(!feof(pfiledata));     if(!ketemu)              {                  printf("     DATA TIDAK 'DI UBAH' \n\n");     }fclose(pfiletemp);fclose(pfiledata);remove("data.txt");rename("datatemp.txt","data.txt");}void hapusData(){     system("CLS");     FILE *pfiletemp, *pfiledata;     pfiledata=fopen("data.txt","rb");     pfiletemp=fopen("datatemp.txt","wb");     char x[10];     int ketemu;     char jawab;     printf(" ==============================================\n");     printf("                                              \n");     printf("       Hapus Data Berdasarkan kode Musik           \n");     printf("          Masukan kode Musik                      \n");     printf("                                              \n");     printf(" ==============================================\n");     fflush(stdin);gets(x);     system("CLS");     fread(&music,sizeof(music),1,pfiledata);     ketemu = 0;     jawab = 'Y';     do     {              if(strcmpi(music.kode,x)==0)              {                printf("===========================================\n");                printf("                DATA Data Musik       \n");                printf("===========================================\n");                printf("     kode           : %-10s                   \n",x);                printf("     Nama Artis       : %-10s                   \n",music.artis);                printf("     Jenis Musik      : %-10s                   \n",music.jenis_musik);                printf("     Judul Lagu       : %-10s                    \n",music.judul_lagu);                printf("===========================================\n");                printf("DATA AKAN DI HAPUS, ARE YOU SURE ? [Y/T] :   ");                scanf("%c",&jawab);                  if(toupper(jawab)=='Y')                    {                            printf("DATA DIHAPUS\n");                            ketemu=1;                    }                  else                            fwrite(&music,sizeof(music),1,pfiletemp);                }      else                   {                   fwrite(&music,sizeof(music),1,pfiletemp);                   }       fread(&music,sizeof(music),1,pfiledata);     }while(!feof(pfiledata));     if(!ketemu)              {                  printf("DATA TIDAK 'DI HAPUS'\n\n");     }fclose(pfiletemp);fclose(pfiledata);        remove("data.txt");        rename("datatemp.txt","data.txt");}void bukaData(){     system("CLS");     FILE *pfiledata;     pfiledata=fopen("data.txt","rb");     typedef struct             {char kode[12], artis[20], jenis_musik[40], judul_lagu[30];                   }data_musik;     data_musik music;     int i=5,j=1;    printf("===========================================\n");    printf ("|          Data Musik                  |\n");    printf ("===========================================\n"); rewind(pfiledata); while(fread(&music,sizeof(music),1,pfiledata)){        printf("%i.",j);        printf(" kode         : %s\n",music.kode);        printf(" Nama Artis     : %s\n",music.artis);        printf(" Jenis Musik    : %s\n",music.jenis_musik);        printf(" Judul Lagu     : %s \n \n",music.judul_lagu);        i=i+5;        j++; } fclose(pfiledata);     }

Untuk Source Code  dibawah

0

Extreme Programming

Posted by jujur on 5:07 AM








The Rules of Extreme Programming


Planning

     User Stories ditulis.

     Membuat jadwal release.

     Sering membuat release yang kecil.

     Project dibagi menjadi dua Iteration.

     Perencanaan iterasi di mulai di setiap iterasi.











Copyright Jujur Soaloon Sitangang Lipan All rights reserved. Theme by Sitanggang. | Bloggerized by Soalparna.