Diktat Algorithm & Programming

download Diktat Algorithm & Programming

of 89

Transcript of Diktat Algorithm & Programming

  • 7/22/2019 Diktat Algorithm & Programming

    1/89

    Algorithm and Programming

    Hands on Lab

    January 2011

    For the latest information, please see bluejack.binus.ac.id

  • 7/22/2019 Diktat Algorithm & Programming

    2/89

    i | P a g e

    Information in this document, including URL and other Internet Web site references, is

    subject to change without notice. This document supports a preliminary release of software

    that may be changed substantially prior to final commercial release, and is the proprietary

    information of Binus University.

    This document is for informational purposes only. BINUS UNIVERSITY MAKES NO

    WARRANTIES, EITHER EXPRESS OR IMPLIED, AS TO THE INFORMATION IN THIS

    DOCUMENT.

    The entire risk of the use or the results from the use of this document remains with the

    user. Complying with all applicable copyright laws is the responsibility of the user. Without

    limiting the rights under copyright, no part of this document may be reproduced, stored in

    or introduced into a retrieval system, or transmitted in any form or by any means

    (electronic, mechanical, photocopying, recording, or otherwise), or for any purpose, without

    the express written permission of Binus University.

    Binus University may have patents, patent applications, trademarks, copyrights, or other

    intellectual property rights covering subject matter in this document. Except as expressly

    provided in any written license agreement from Binus University, the furnishing of this

    document does not give you any license to these patents, trademarks, copyrights, or other

    intellectual property.

    Unless otherwise noted, the example companies, organizations, products, domain names, e-

    mail addresses, logos, people, places and events depicted herein are fictitious, and no

    association with any real company, organization, product, domain name, email address,

    logo, person, place or event is intended or should be inferred.

    2011 Binus University. All rights reserved.

    The names of actual companies and products mentioned herein may be the trademarks oftheir respective owners.

  • 7/22/2019 Diktat Algorithm & Programming

    3/89

    ii | P a g e

    Table of Contents

    OVERVIEW ..................................................................................................... iii

    SYSTEM REQUIREMENT .................................................................................... iv

    Chapter 01 IDE dan Instruksi I/O .................................................................... 1

    Chapter 02 Operasi Aritmatika ...................................................................... 10

    Chapter 03 Struktur Kendali Pemilihan ........................................................... 20

    Chapter 04 Struktur Kendali Perulangan ......................................................... 30

    Chapter 05 Array ......................................................................................... 36

    Chapter 06 Function .................................................................................... 45

    Chapter 07 Built-in Function ......................................................................... 58

    Chapter 08 Rekursif ..................................................................................... 64

    Chapter 09 Operasi File ................................................................................ 68

    Chapter 10 Sorting ...................................................................................... 75

    Chapter 11 String ........................................................................................ 82

  • 7/22/2019 Diktat Algorithm & Programming

    4/89

    iii | P a g e

    OVERVIEW

    Chapter 01

    IDE dan Intruksi Dasar Input/Output

    Chapter 02

    Operasi Aritmatika : Penjumlahan, Pengurangan, Perkalian, Pembagian dan Modulus

    Chapter 03

    Struktur Kendali Pemilihan : If, If Else, If Else If dan Switch Case Ternary Operator

    Chapter 04

    Struktur Kendali Perulangan: DoWhile, While dan For

    Chapter 05

    Array : Array 1 Dimensi, 2 Dimensi dan N-Dimensi

    Chapter 06

    Function : Call By Value dan Call By References

    Chapter 07

    Build-In Function

    Chapter 08

    Fungsi Rekursif

    Chapter 09

    Operasi File : Baca dan Tulis File

    Chapter 10

    Sorting : Bubble Sort

    Chapter 11

    String : Input/Output dan Fungsi dalam Header String.h

  • 7/22/2019 Diktat Algorithm & Programming

    5/89

    iv | P a g e

    SYSTEM REQUIREMENT

    Hardware:o Minimum:

    1.6 GHz CPU, 192 MB RAM, 1024x768 display, 5400 RPM hard disk

    o Recommended:2.2 GHz, 384 MB, 1280x1024 display, 7200 RPM or higher.

    o On Windows Vista:2.4 GHz CPU, 768 MB RAM

    Software:o Microsoft Visual Studio 2008 Express Edition (Visual C++)o 1.3 GB of available disk space for the full install

  • 7/22/2019 Diktat Algorithm & Programming

    6/89

    1 | P a g e

    Chapter 01

    IDE dan Instruksi I/O

  • 7/22/2019 Diktat Algorithm & Programming

    7/89

    2 | P a g e

    1.1. Definisi Algoritma

    Secara etimologis, Algoritma berasal dari kata Al Khwarizmi / algorism yang dalam

    bahasa Arab berarti proses menghitung menggunakan angka. Tetapi, dalam pengertian

    lain, algoritmaadalah urutan langkah-langkah logis penyelesaian masalah yang disusun

    secara sistematis.

    1.2. Definisi Pseudocode

    Pseudocodeadalah kode-kode yang dapat kita mengerti yang nantinya akan diolah dan

    diubah ke dalam suatu bahasa pemrograman. Selain itu, pseudocodedapat juga diartikan

    sebagai cara untuk menuliskan sebuah algoritma secara high-level (leveltingkat tinggi).

    Untuk penulisan, pseudocodebiasanya dituliskan dengan kombinasi bahasa manusia dan

    notasi matematika dan biasanya sebuah pseudocodetidak terlalu detail jika dibandingkan

    dengan kode program.

    Isu-isu detail dalam kode program yang sifatnya teknis tidak dibahas di dalam

    pseudocode.

    1.3. Contoh Pseudocode

    Contohpseudocodeuntuk meminta inputan nama dan mencetaknya:

    1. Read Nama

    2. Print Nama

    Dalam bahasa C kita dapat mengubahnya menjadi:

    char nama[100];

    scanf(%s, nama); fflush(stdin); //Read Nama

    printf(nama = %s, nama); //Print Nama

  • 7/22/2019 Diktat Algorithm & Programming

    8/89

    3 | P a g e

    1.4. Tipe data

    NoTipe

    DataUkuran

    Range

    (Jangkauan)Format Keterangan

    1. Char 1 byte -128 s/d 127 %c Karakter/string

    2. Int 2 byte -32768 s/d 32767 %d Integer/bilangan bulat

    3. Float 4 byte - 3.4E-38 s/d 3.4E+38 %f Float/bilangan pecahan

    4. Double 8 byte - 1.7E-308 s/d 1.7E+308 %lf Pecahan presisi ganda

    Contoh deklarasinya:

    char NIM[11];int age;

    Contoh penggunaannya:

    scanf(%s,NIM);

    scanf(%d,&age);

    1.5. Input/Output

    Dalam bahasa C, operasi input output dapat ditemukan dalam header (stdio.h).

    Stdio merupakan singkatan dari standard input output.

    1.5.1. Input

    a. scanf: untuk meminta inputan data dari keyboard.

    #includeint main(){

    char ID[11];

    int age;printf(ID = );scanf(%s,ID);printf(Age = );scanf(%d,&age);printf(Hi! Binusian!! \n);printf(Your ID = %s \n,ID);printf(Your Age = %d \n,age);return 0;

    }

    Note :

    Untuk pemakaian sintaks scanf, apabila data yang diinput adalah array ofcharacter / string, maka tanda & dapat dihilangkan

  • 7/22/2019 Diktat Algorithm & Programming

    9/89

    4 | P a g e

    %x Hexadecimal integer

    %f Float (bilangan pecahan)

    %lf Double float

    %e Float tipe exponent menggunakan e

    %c Karakter

    %s String

    %d Bilangan bulat (integer)

    %ld Long integer

    %u Unsigned integer

    b. gets: untuk meminta inputan berupa kata atau kalimat sampai akhir line \n

    (menekan tombol enter).

    c. getchar: untuk memasukkan sebuah nilai karakter ke variabel yang bertipe

    karakter.

    #includeint main(){

    char grade;printf(Your grade : );grade=getchar();printf(Youve inputed this grade = %c \n,grade);

    #includeint main(){

    char name[25];char addr[50];printf(Name : );gets(name);printf(Addr : );gets(addr);printf(\n);printf(Data youve inputed : \n);printf(Name : %s \n,name);printf(Addr : %s \n,addr);return 0;

    }

    Note :

    Anda dapat menggunakan [^\n]untuk menggantikan gets.

    Dengan scanf ini akan mengambil sampai karakter \n.Karakter \ntidak diambil. (dibaca : ambil sampai negasi \n).

    Contoh: scanf(%[^\n], &variable);

  • 7/22/2019 Diktat Algorithm & Programming

    10/89

    5 | P a g e

    1.5.2. Output

    a. printf: digunakan untuk menampilkan suatu keluaran pada konsol (layar).

    Berikut beberapa variasi format untuk menampilkan string:

    %s : menampilkan seluruh karakter pada string.

    %Ns : menampilkan semua karakter rata kanan dengan lebar N posisi.

    %-Ns : menampilkan semua karakter rata kiri dengan lebar N posisi.%N.Ms : menampilkan rata kanan hanya M karakter pertama saja dengan lebar

    N posisi.

    *untuk format pencetakan (%s, %d, %c, dan lainnya. ), perhatikan format yang

    sudah ada pada input-scanf.

    Escape

    SequenceDescription Unicode

    \t (Horizontal) Tab \u0009

    \f Form Feed \u000c

    \v Vertical Tab \u000B

    \n New Line Feed (LF) \u000a

    \r Carriage Return (CR) \u000d

    \b Backspace \u0008

    \' Single quote (grave accent) \u0027

    \\ Back slash (solidus) \u005c

    \0 null (C string terminator) \u0000

    \a Alert (beep sound) or New line break for CSS2 content \u0007

    \c continuation (UNIX) Tidak ada

    \" Double quote \u0022

    #include int main(){

    int value=69;printf(I love C language.. =) \n);printf(Value = %d \n,value);getchar();return 0;

    }

  • 7/22/2019 Diktat Algorithm & Programming

    11/89

    6 | P a g e

    b. putchar: menampilkan 1 karakter dan tidak mengandung escapesequence\n.

    c. puts: menampilkan nilai string dengan disertai linefeed atau escapesequenceganti baris (\n).

    Pahami definisi algoritma, jika perlu carilah sumber-sumber di internet untuk

    mendukung pengetahuan Anda.

    #include int main(){

    puts(I love C language.. =));puts(Lets study C language );return 0;

    }

    #include int main(){

    char a;

    printf(a = );scanf(%c,&a);fflush(stdin);printf(Data you have inputed : );putchar(\n);putchar(a);return 0;

    }

  • 7/22/2019 Diktat Algorithm & Programming

    12/89

    7 | P a g e

    1.6. Latihan

    1.6.1 Latihan 1 Pengenalan IDE

    IDE yang kita gunakan adalah Visual Studio 2008 C++ Express Edition yang dapat

    diunduh gratis di situs Microsoft.

    How to launchVisual Studio 2008 C++ Express?

    Shortcut:

    a) Tekan WIN + R.

    b) Ketik VCExpress

  • 7/22/2019 Diktat Algorithm & Programming

    13/89

    8 | P a g e

    1.6.2.Latihan 2 Follow step by step

    Perbaikilah listing program di bawah ini dengan benar sehingga jika dijalankan

    listing program akan menghasilkan program dibawah ini!

    Output:

    Question :

    #incude stdio.>//step 1 invalid preprocessor command 'incude change it to include//step 2 expected a filename, found 'identifier change it to

    int main(){

    char name[25]="Sky";printf(\t\t===========================\n");

    //step 3 newline in constant add after printf(

    printf("\t\t%%Welcome to Bina Nusantara%\n");//step 4 output shows that we need to add % behind to print % (%% = %)

    printf("\t\t===========================\n");printf("\n\r======================================================");

    printf("\nWish u have a cool\excellent programming skill, %s!!! \n",ame);//step 5 'ame' : undeclared identifier change it to name

    pritf("======================================================\n");

    //step 6 'pritf': identifier not found change it to printf

    printf("\n\nPress ENTER to exit!! %c %c Algoritm !!!",1,3);

    gethar();//step 7 gethar: identifier not found change it to getchar

    return 0;}

  • 7/22/2019 Diktat Algorithm & Programming

    14/89

    9 | P a g e

    1.6.7.Latihan 3 Try Your Self Make it Zero Errors

    Cobalah perbaiki code dibawah ini!

    intmain(){

    charname[100]printf("\tBina Nusantara Library System\t");printf("\t\tt\t*-*-*-*-*-*-*-*-*\n\n");printf("Please enter your name : ");scanf("[\n]",name);flush(stdin);printf("nnHi! %s, This is a quote for you.....\n\n",name);getchar();printf("%c "Trying to forget someone you love is like trying to

    remember someone you never knew"\n\n",3);prinf("Press Enter to other quotes...\n\n");getchrr();printf("%c \\"Eventually, all the pieces will fall into place. Until

    then.. laugh at the confusion, live forthe moment, and knowthat everything happens forthe reason\"\n\n",3);

    printf("%c \If everything happened when and how we wanted it to,nothing would be worth waiting for..\"\n\",3);

    getchar();printf("Welcome to C languange... Good Luck!!!!);getchar();return0

    }

    Answer:

    #include

    intmain(){

    charname[25]="Sky";printf("\t\t===========================\n");printf("\t\t%%Welcome to Bina Nusantara%%\n");printf("\t\t===========================\n");

    printf("\n\r======================================================" );printf("\nWish u have a cool\\excellent programming skill, %s!!!\n"

    ,name);

    printf("======================================================\n");

    printf("\n\nPress ENTER to exit!! %c %c Algorithm !!!",1,3);

    getchar();return0;

    }

  • 7/22/2019 Diktat Algorithm & Programming

    15/89

    10 | P a g e

    Chapter 02Operasi Aritmatika

  • 7/22/2019 Diktat Algorithm & Programming

    16/89

  • 7/22/2019 Diktat Algorithm & Programming

    17/89

    12 | P a g e

    Anda juga dapat melakukan penjumlahan dengan cara:

    hasil -= a;

    dimana setara dengan

    hasil = hasil - a;

    2.1.3. Perkalian

    int hasil;

    int a=6, b = 3;

    hasil = a * b;

    maka nilai hasil yang tercetak adalah 18.

    Anda juga dapat melakukan penjumlahan dengan cara:

    hasil *= a;

    dimana setara dengan

    hasil = hasil * a;

    2.1.4. Pembagian

    int hasil;

    int a=6, b = 3;

    hasil = a / b;

    maka nilai hasil yang tercetak adalah 2.

    Anda juga dapat melakukan penjumlahan dengan cara:

    hasil /= a;

    dimana setara dengan

    hasil = hasil / a;

  • 7/22/2019 Diktat Algorithm & Programming

    18/89

    13 | P a g e

    2.1.5. Modulus/Modulo

    Biasanya digunakan untuk menentukan menentukan nilai sisa dari suatu pembagian.

    Umumnya modulus/modulo digunakan untuk menentukan suatu nilai merupakan

    bilangan ganjil atau genap.

    contoh:

    angka % 2 == 0(bilangan genap)

    jika

    angka % 2 != 0(bilangan ganjil)

    2.1.6. Increment

    a. Preincrement (++)Preincrement berfungsi untuk menambahkan sebuah variabel sebanyak satu

    point (variabel + 1) sebelum menjalankan suatu proses, seperti memasukkan isi

    variabel tersebut ke dalam variabel lain atau proses pencetakan variabel ke dalam

    konsol.

    Contoh:

    #include

    int main(){

    int number=3;int beforeIncrement;int afterIncrement;

    printf("Initial number : %d\n\n",number);

    //pada bagian ini, nilai number ditambah 1 terlebih dahulu//nilai disimpan ke dalam beforeIncrement

    beforeIncrement = ++number;

    //nilai number yang sudah ditambah disimpan ke //dalam afterIncrement

    afterIncrement = number;

    printf("Number before increment : %d\n",beforeIncrement);printf("Number after increment : %d",afterIncrement);

    getchar();return 0;

    }

  • 7/22/2019 Diktat Algorithm & Programming

    19/89

    14 | P a g e

    b. Postincrement (++)

    Postincrement berfungsi untuk menambahkan sebuah variabel sebanyak satu

    point (variabel + 1) setelah menjalankan suatu proses, seperti memasukkan isi

    variabel tersebut ke dalam variabel lain atau proses pencetakan variabel ke dalam

    konsol.

    Contoh:

    #include

    int main(){

    int number=3;int beforeIncrement;int afterIncrement;

    printf("Initial number : %d\n\n",number);//pada bagian ini, nilai number disimpan ke dalam//beforeIncrement//lalu number ditambah 1;

    beforeIncrement = number++;

    //nilai number yang sudah ditambah disimpan ke dalam

    //afterIncrementafterIncrement = number;

    printf("Number before increment : %d\n",beforeIncrement);printf("Number after increment : %d",afterIncrement);

    getchar();return 0;

    }

  • 7/22/2019 Diktat Algorithm & Programming

    20/89

    15 | P a g e

    2.1.7. Decrement

    a. Predecrement (--)

    Predecrementberfungsi untuk mengurangi sebuah variabel sebanyak satu point

    (variabel - 1) sebelum menjalankan suatu proses, seperti memasukkan isi variabel

    tersebut ke dalam variabel lain atau proses pencetakan variabel ke dalam konsol.

    Contoh:

    #include

    int main(){

    int number=3;int beforedecrement;int afterdecrement;

    printf("Initial number : %d\n\n",number);

    //pada bagian ini, nilai number dikurang 1 terlebih//dahulu

    //nilai disimpan ke dalam beforedecrement

    beforedecrement = --number;

    //nilai number yang sudah dikurang disimpan ke//dalam afterdecrement

    afterdecrement = number;

    printf("Number before decrement : %d\n",beforedecrement);printf("Number after decrement : %d",afterdecrement);

    getchar();return 0;

    }

  • 7/22/2019 Diktat Algorithm & Programming

    21/89

    16 | P a g e

    b. Postdecrement (--)

    Postdecrementberfungsi untuk mengurangi sebuah variabel sebanyak satu point

    (variabel - 1) setelah menjalankan suatu proses, seperti memasukkan isi variabel

    tersebut ke dalam variabel lain atau proses pencetakan variabel ke dalam konsol.

    Contoh:

    #include

    int main(){

    int number=3;int beforeDecrement;int afterDecrement;

    printf("Initial number : %d\n\n",number);//pada bagian ini, nilai number disimpan ke dalam//beforeDecrement//lalu number dikurang 1;

    beforeDecrement = number--;

    //nilai number yang sudah dikurang disimpan ke dalam//afterDecrement

    afterDecrement = number;

    printf("Number before Decrement : %d\n", beforeDecrement);printf("Number after Decrement : %d",afterDecrement);

    getchar();return 0;

    }

  • 7/22/2019 Diktat Algorithm & Programming

    22/89

  • 7/22/2019 Diktat Algorithm & Programming

    23/89

    18 | P a g e

    2.2.3.Latihan 3 Try it Yourself

    Apakah code ini benar?

    Berapakah nilai a, b, dan c?

    Dan mengapa?

    References:

    http://www.cppreference.com/wiki/operator_precedence

    int a = 6;

    int b = 7;

    int c = a +++ b;

    http://www.cppreference.com/wiki/operator_precedencehttp://www.cppreference.com/wiki/operator_precedence
  • 7/22/2019 Diktat Algorithm & Programming

    24/89

    19 | P a g e

    Chapter 03Struktur Kendali Pemilihan

  • 7/22/2019 Diktat Algorithm & Programming

    25/89

    20 | P a g e

    3.1. Struktur kendali pemilihan

    Dalam bahasa C, terdapat beberapa macam struktur kendali pemilihan, diantaranya

    adalah if, else, elseif, dan switchcase.

    3.1.1 If

    If digunakan untuk melakukan pengecekan atau menyeleksi apakah suatu kondisi

    terpenuhi atau tidak.

    Berikut ini cara penggunaan struktur kendali pemilihan if:

    Jika digunakan dengan hanya 1 statement yang harus dijalankan ketika kondisibernilai benar.

    Jika digunakan dengan lebih dari 1 statement yang harus dijalankan ketika kondisibernilai benar

    3.1.2. Else dan else if

    a. Else

    Else digunakan untuk melakukan pengecekan terhadap suatu kondisi selain

    kondisi yang telah dicek sebelumnya.

    Jika digunakan dengan 1 statement yang harus dijalankanif (expression){

    }else

    if (expression){

    }

    if (expression)

  • 7/22/2019 Diktat Algorithm & Programming

    26/89

    21 | P a g e

    Jika digunakan dengan lebih dari 2 statement atau lebih yang harus dijalankan

    b. Else if

    Else if digunakan untuk melakukan pengecekan terhadap beberapa kondisi selain

    dari kondisi yang telah dicek sebelumnya.

    Jika digunakan dengan hanya 1 statement yang harus dijalankan

    Jika digunakan dengan lebih dari 2 statement atau lebih yang harus dijalankan

    Untuk memudahkan mengingat, dapat dikatakan else if adalah extensifikasi

    dari else, karena pada else if dapat dilakukan pengecekan kondisi lain selain

    dari kondisi yang telah dicek sebelumnya.

    if (expression){

    }else if(expression){

    }

    if (expression){

    }else if(expression)

    if (expression){

    }

    else{

    }

  • 7/22/2019 Diktat Algorithm & Programming

    27/89

    22 | P a g e

    Perhatikan langkah-langkah berikut ini:

    1. Ketika kita menemukan kondisi berupa booleanexpressionyang kita cekdengan menggunakan operator < (lebih kecil), > (lebih besar), = (lebih besar sama dengan), atau == (sama dengan).

    Maka kita akan menghasilkan hasil berupa trueatau false (boolean).

    Perhatikan code berikut:

    Maka yang tercetak adalah: Yang diinput adalah angka sembilan.

    2. Dengan menggunakan kode program di atas dan mengganti inputandengan menginput angka 6.

    Maka yang tercetak adalah: Angka Lainnya.

    3. Kita dapat saja mengubah sedikit kode program pada potongan program diatas, kita dapat saja membuat agar ketika kita menginput angka 6 dan

    menampilkan pesan Hey, ini angka enam, dengan cara seperti berikut

    ini:

    scanf(%d, &x); //input 9

    if( x == 9 )printf(Yang diinput adalah angka sembilan);

    elseprintf(Angka Lainnya);

  • 7/22/2019 Diktat Algorithm & Programming

    28/89

    23 | P a g e

    Kemudian pada potongan program di atas, tambahan kode yang harus

    ditambahkan adalah:

    Jadi secara lengkap, format penulisan if secara lengkap adalah

    if (expression){

    }else if(expression){

    }else{

    }

    scanf(%d, &x); //kita input 9

    if( x == 9 )

    printf(Its nine);

    else //dapat ditempel menjadi else ifif( x == 6 )

    printf(Hey, ini angka enam);

    else

    printf(Angka Lainnya);

    scanf(%d, &x); //kita input 9

    if( x == 9 )

    printf(Yang diinput adalah angka sembilan);

    else

    //printf(Angka Lainnya);

  • 7/22/2019 Diktat Algorithm & Programming

    29/89

    24 | P a g e

    3.2. Pemilihan dengan menggunakan switch case

    3.2.1 Switch Case tanpa Break

    Switch Case digunakan untuk menyeleksi suatu kumpulan syarat (case) tertentu

    terhadap suatu variabel/expression.

    Format:

    Dapat terlihat pada format di atas expression dimaksudkan adalah suatu variabel,

    kondisi atau pernyataan logika yang ingin dicek kebenarannya.

    Caseadalah syarat atau kondisi penyeleksian suatu expression, bila expression yang

    dicek ternyata sesuai dengan suatu case, maka statement akan dijalankan.

    Contoh:

    Keterangan:

    Type casting = proses untuk mengubah suatu variabel dengan tipe data tertentu

    menjadi tipe data yang lain. Misalnya mengubah bilangan float

    menjadi bilangan int, bilangan long menjadi double dan sebagainya.

    Dalam potongan program di atas dapat dilihat salah satu contoh type casting yaitu:

    (char) = type casting suatu variabel menjadi tipe data char

    char character;

    character = (char) getchar(character);

    switch(character)

    {

    case a : case i' : case u : case e : case o :

    printf(Vocal character);

    default :

    printf(Consonant character);

    }

    switch( expression ){

    case constant-expression1 : statements1;[case constant-expression2 : statements2;][case constant-expression3 : statements3;][default : statements4;]

    }

  • 7/22/2019 Diktat Algorithm & Programming

    30/89

    25 | P a g e

    3.2.2 Switch Case dengan Break

    Penggunaan switch case pada pembahasan ini, sebenarnya sama saja dengan

    pembahasan sebelumnya tetapi ditambahkan dengan keyword break.

    Fungsi break dalam switch case dimaksudkan agar ketika pengecekan berhasil dan

    proses masuk ke salah satu case, maka dengan keyword break, statement lain yang

    dideklarasikan di bawah statement tersebut tidak lagi dijalankan (keluar dari

    block statement switch).

    Keyword breakini, tidak hanya dapat digunakan dalam swith case saja, tetapi dapat

    digunakan dengan fungsi-fungsi lain atau proses lain.

    Untuk melihat perbedaannya hilangkanlah sintax break(break pada case 1).

    3.3. Ternary Operator ( ? : )

    Ternary operator adalah suatu operator yang dapat digunakan untuk melakukan

    pengecekan seperti halnya struktur kendali if, else dan switch case. Operator ini akan

    mengecek apakah expression yang dideklarasikan di sebelah kiri operator ? bernilai

    benar atau salah, jika benar/salah maka akan dijalankan statement yang sesuai.

    Format:

    Contoh :

    scanf("%d",&x); //input 3(x == 3 ) ? printf("yes, its three!\n") : printf("hm,..its the

    another\n");

    ? :

    int number;

    scanf(%d,&number);

    switch(number){case 1 : printf(one!\n); break;

    case 2 : printf(two!\n); break;

    default : printf(Not one or two);

    }

  • 7/22/2019 Diktat Algorithm & Programming

    31/89

    26 | P a g e

    3.4. Latihan

    3.1.1.Latihan 1Pemahaman konsep.

    1. Apakah perbedaan mendasar antara switch dan if?2. Apa saja syarat-syarat penggunaan if?3. Bolehkan default dihilangkan?

    3.1.2.Latihan 2 Code it.

    Winy, seorang mahasiswi jurusan Teknik Informatika, ditugaskan oleh dosen

    Aljabar Linear untuk membuat sebuah program sederhana untuk menghitung

    determinan matriks. Program tersebut dibuat dengan ketentuan sebagai berikut:

    Awal program dijalankan, ditampilkan menu seperti berikut:1. Matriks 2x22. Matriks 3x3

    Ketik "exit" untuk keluar

    Minta useruntuk menginput pilihan. Validasikan pilihan yang dapat diinputberupa karakter 1,2, atau kataexit.

    Jika usermemilih menu Matriks 2x2 (input 1) atau Matriks (input 2),Mintauser untuk menginput elemen matriks buah bilangan. Validasikan elemen

    matriks yang diinput minimal 0 dan maksimal 9.

    Setelah masing-masing elemen matriks diinput, tampilkan matriks tersebut.1. Contoh tampilan matriks 2x2:

    2. Contoh tampilan matriks 3x3:

    Kemudian, hitung dan tampilkan nilai determinanmatriks tersebut, denganrumus:

    1. Untuk Matriks 2x2:determinan= (a*d) (b*c)

    2. Untuk Matriks 3x3:determinan= (a*e*i + b*f*g + c*d*h) - (c*e*g + b*d*i + a*f*h)

    Program akan berulang hingga usermemasukkan pilihanexit.

  • 7/22/2019 Diktat Algorithm & Programming

    32/89

    27 | P a g e

    Rancangan Layar Awal Program

    Rancangan Layar Menu Matriks 2x2

    Rancangan Layar UserMemilih Menu 2.

    Note : untuk pertemuan selanjutnya salinlah (copy)codeAnda kevcexpress. Selain itu, biasakan juga untuk menulis code denganindentation (tab).

  • 7/22/2019 Diktat Algorithm & Programming

    33/89

    28 | P a g e

    Chapter 04Struktur Kendali Perulangan

  • 7/22/2019 Diktat Algorithm & Programming

    34/89

    29 | P a g e

    4.1. Struktur kendali perulangan

    Dalam bahasa C, terdapat beberapa macam struktur kendali perulangan, diantaranya for,

    dowhile, while.

    4.1.1.For

    For digunakan untuk mengulang suatu statement yang dideklarasikan berdasarkan

    suatu kondisi atau syarat tertentu.

    Format penggunaan For:

    Jika hanya 1 statement yang dijalankan dalam perulangan

    Jika terdiri lebih dari 1 statement yang dijalankan dalam perulangan

    Contoh:

    Pada potongan program di atas, kedua statement yang terdapat didalam for akan

    dijalankan selama kondisi i < 5 terpenuhi.

    Dalam hal ini, awalnya nilai i adalah 0 dan ketika proses dilakukan, nilai i akan

    ditambahkan satu point (increment i++), dan proses dilakukan terus.

    for ( int i = 0; i < 5; i++){

    printf(Value of i is = %d , i);

    printf(Loop number %d, (i+1));}

    for (initialization; condition; increment/decrement){

    }

    for ([initialization] ; [condition] ; [increment/decrement])

  • 7/22/2019 Diktat Algorithm & Programming

    35/89

    30 | P a g e

    4.1.2.DoWhile

    Do...Whiledigunakan untuk mengulan suatu statement yang dideklarasikan sesudah

    keyword Do dan setelah menjalankan statement tersebut, dilakukan pengecekan

    terhadap expression yang diberikan, apakah bernilai benar/salah.

    Jika bernilai benar, maka statement tesebut akan diulang kembali.

    Jika bernilai salah, maka statement tersebut hanya akan dijalankan satu kali tanpa

    dilakukan pengulangan.

    Contoh:

    Pada potongan program di atas, program akan menjalankan terlebih dahulu kedua

    statement di dalam do kemudian dilakukan pengecekan apakah nilai i < 5, jika benar,

    maka program akan kembali mengulang kedua statement tersebut.

    4.1.3.While

    While digunakan untuk mengulang suatu statement selama expression yang diberikan

    didalamnya bernilai benar, jika bernilai salah, maka statement yang dideklarasikan di

    dalamnya tidak akan diulang.

    Contoh:

    int i = 0;while (i < 5){

    printf(Value of i is %d, i);i++;

    }

    while (expression) {

    }

    int i = 0;

    do{printf(Value of i is %d, i);i++;

    }while (i < 5);

    do{

    }while (expression);

  • 7/22/2019 Diktat Algorithm & Programming

    36/89

    31 | P a g e

    Pada potongan program di atas, program akan melakukan pengecekan terlebih dahulu

    apakah nilai i < 5, jika benar, maka program akan mengulang kedua statement yang

    terdapat di dalam while.

    4.2. Operator Logika

    Jika operator hubungan membandingkan hubungan antara dua buah operand, maka

    operator logika digunakan untuk membandingkan logika hasil dari operator-operator

    hubungan.

    Operator logika ada tiga macam, yaitu:

    a) &&: Logika AND (dan)b) ||: Logika OR (atau)c) !: Logika NOT (ingkaran)

    4.3. Latihan

    4.3.1.Latihan 1 Pemahaman konsep.

    1. Apakah perbedaan mendasar antara for dan dowhile?2. Kapan kita menggunakan while, dan kapan kita menggunakan do while?3. Bisakah kita memasukan break atau continue?

    4.3.2.Latihan 2 Code it.

    Pipi Shop adalah toko yang menjual alat-alat kosmetik seperti bedak, eye

    shadow, lip gloss, mascara, dan eye liner. Anda diminta membuat program untuk

    mendata data customerdan barang apa saja yang dibeli oleh customer.

    Program tersebut memiliki ketentuan sebagai berikut:

    Pada awal program dijalankan, program akan meminta inputan nama.Validasikan panjang nama minimal 1 karakter dan maksimal 20

    karakter.

    Program akan meminta inputan alamat. Validasikan panjang alamatminimal 1 karakter, maksimal 50 karakter dan harus mengandung

    kata Jalan.

    Kemudian program akan menampilkan daftar barang yang bisa dipesan olehcustomer.

  • 7/22/2019 Diktat Algorithm & Programming

    37/89

    32 | P a g e

    Program akan meminta usermenginput nama barang. Validasikan userhanyabisa menginput nama barang yang ada di daftar barang (tidak case

    sensitive (huruf besar dan kecil disamakan)).

    Program akan meminta usermenginput banyak pesanan. Validasikan banyakpesanan minimal 1 dan maksimal 100.

    Program akan meminta user menginput nomor kartu kredit. Validasikannomor kartu kredit harus terdiri dari 14 digit.

    Program akan menampilkan data data yang telah diinput oleh user. Program akan meminta user untuk melanjutkan program atau mengulang

    program dengan ketentuan sebagai berikut:

    o Validasikan inputan hanya bisa N atau Y(case sensitive).o Jika usermemilih N, maka program akan meminta ulang data customer.o Jika usermenekan Y, maka program selesai.

    Rancangan Layar Awal Program

    Rancangan Layar Program menampilkan data hasil inputan

    Rancangan Layar Akhir Program

  • 7/22/2019 Diktat Algorithm & Programming

    38/89

    33 | P a g e

    Chapter 05Array

  • 7/22/2019 Diktat Algorithm & Programming

    39/89

    34 | P a g e

    5.1. Teori Dasar Array

    Array adalah suatu tipe data terstruktur yang bertipe data sama dan berjumlah

    tetap (berdasarkan apa yang ditentukan) dan diberi suatu nama tertentu (sesuai

    variabel).

    Elemen-elemen array tersusun secara berurutan. Susunan tersebut membuat

    array memiliki alamat yang bersebelahan/berdampingan dalam memori sesuai

    dengan besar pemakaian memori tipe data yang digunakan.

    Namun, perlu diingat, walaupun elemen-elemennya tersusun secara berurutan, array

    tetap dapat diakses secara acak di dalam memori.

    Array juga dapat berupa array 1 dimensi, 2 dimensi, bahkann-dimensi.

    Ilustrasi array 1 dimensi

    5.2. Deklarasi Array

    Contoh:

    Contoh diatas berarti anda memesan tempat di memori komputer sebanyak 26

    tempat dengan indeks yang dapat digunakan dari index 0 sampai index 25.

    5.2.1 Inisialisasi Array 1D

    Untuk memasukkan suatu nilai ke dalam sebuah array, dapat dilakukan dengan

    beberapa cara, salah satu caranya adalah

    Contoh di atas berarti program akan memasukkan angka 2, 1, 3, 7 dan 8 ke dalam

    sebuah array dengan nama list.

    int list[5] = {2,1,3,7,8};

    char nama[26];

    data_type array_name[size];

  • 7/22/2019 Diktat Algorithm & Programming

    40/89

    35 | P a g e

    5.2.2. Initializing Multidimensional Arrays

    Untuk membuat array yang multidimensi (contohnya pada penggunaan array dalam

    konsep matrix).

    Dapat dilakukan inisialisasi dengan cara:

    Dalam hal ini jumlah array yang dapat digunakan adalah mulai dari index [0][0]

    sampai dengan index [x-1][y-1].Contoh:

    Contoh di atas berarti program akan memasukkan kumpulan angka yang

    berjumlah 9 tersebut ke dalam array matrix yang akan menghasilkan:

    Matrix [0][0] = 11

    Matrix [0][1] = 12

    Matrix [0][2] = 13

    Matrix [1][0] = 21

    Matrix [2][0] = 32

    Matrix [2][2] = 33

    Dan seterusnya.

    Matrix yang dapat digunakan adalah mulai dari index [0][0] sampai dengan[2][2] yang bila dihitung akan berjumlah 9 buah.

    int matrix[3][3] ={

    {11, 12, 13},{21, 22, 23},{32, 31, 33},

    };

    int variabel[x][y] ={

    {1, 2, ..., n},{1, 2, ..., n},...dst

    };

  • 7/22/2019 Diktat Algorithm & Programming

    41/89

  • 7/22/2019 Diktat Algorithm & Programming

    42/89

    37 | P a g e

    5.4. Latihan

    5.3.1.Latihan 1 Pemahaman konsep.

    1. Pada index ke berapa suatu array dimulai? Apakah 1 atau 0?2. Apakah ada array 3 dimensi? Jika ada, apa fungsinya?

    5.3.2.Latihan 2 Code it.

    Anda mempunyai teman yang merupakan seorang mahasiswa jurusan Teknik

    Informatika. Anda diminta oleh teman anda untuk membantunya dalam

    membuat sebuah aplikasi permainan bernama XO Table yang mempunyai

    ketentuan sebagai berikut:

    Tabel permainan memiliki ukuran 3x3 kotak dimana setiap kotak pada tabeldapat diisi dengan suatu simbol (X atau O).

    Untuk menjalankan permainan ini diperlukan 2 orang pemain, dimana salahsatu dari pemain akan menggunakan symbol X dan pemain lainnya akan

    menggunakan simbol O.

    Pada permainan ini, setiap pemain akan menentukan suatu posisi dalam tabelyang masih kosong untuk diberi tanda sesuai dengan simbol pemain tersebut.

    Pada program ini user akan diminta untuk memasukkan koordinat X dan Y

    dari posisi simbol yang akan dimasukkan tersebut dengan ketentuan sebagai

    berikut:

    o Pertama kali program akan meminta user untuk memasukkan koordinatX. Validasikan koordinat X yang dimasukkan minimal 1 dan

    maksimal 3.

    o Kemudian program akan meminta useruntuk memasukkan koordinat Y.Validasikan koordinat Y yang dimasukkan minimal 1 dan maksimal

    3.

    o Validasikan jika user memasukkan simbol pada tabel permainan denganposisi koordinat X dan kordinat Y yang sudah diisi oleh simbol

    (baik simbol X maupun simbol O), tampilkan pesan Posisi

    telah diisi... Kedua pemain akan bergantian untuk giliran jalan, dan giliran untuk pertama

    kali diberikan pada pemain X.

    Untuk memenangkan permainan ini, salah satu pemain harus menyusunsimbol yang sama secara berurutan (sejumlah 3 buah) baik secara

    vertikal, horizontal, maupun diagonal.

  • 7/22/2019 Diktat Algorithm & Programming

    43/89

    38 | P a g e

    Bila semua kotak yang tesedia dalam tabel telah diisi dan tidak adapemain yang berhasil membuat simbolnya berurutan, maka

    permainan dinyatakan seimbang/seri.

    Di akhir program, tampilkan hasil permainan. Jika salah satu pemain menang,maka tampilkan pesan Selamat, pemain menang!!. Jika

    permainan berakhir dengan keadaan seri, tampilkan pesan Permainan

    seri...

    Jika permainan telah selesai maka program akan meminta konfirmasi untukmelanjutkan permainan atau tidak.

    Rancangan Layar Awal

    Rancangan Layar Dengan Giliran Pemain X

  • 7/22/2019 Diktat Algorithm & Programming

    44/89

    39 | P a g e

    Rancangan Layar Dengan Giliran Pemain O

    Rancangan Layar Jika Posisi Telah Diisi

    Rancangan Layar Jika Permainan Seri

  • 7/22/2019 Diktat Algorithm & Programming

    45/89

  • 7/22/2019 Diktat Algorithm & Programming

    46/89

    41 | P a g e

    Chapter 06

    Function

  • 7/22/2019 Diktat Algorithm & Programming

    47/89

    42 | P a g e

    6.1. Deklarasi Variabel Lokal

    Contoh:

    Bila anda menggunakan bahasa C, maka setiap variabel HARUS diletakan dibawah tanda

    kurung kurawal ({) (top of a block).

    6.2. Ruang Lingkup Variabel Lokal

    Variabel lokal hanya berfungsi di dalam blok saja. Jika kita perhatikan pada contoh di

    atas, maka variabel tersebut hanya berlaku pada blok int main saja.

    6.3. Deklarasi Variabel Global

    Contoh:

    #include

    char name[25];int age;

    int coba()

    {age = age + 5;return age;

    }

    int main(){return 0;

    }

    #include

    //

    int main(){return 0;

    }

    int main(){

    char nama[25];int usia;

    int main(){

    data_type variable_name;}

  • 7/22/2019 Diktat Algorithm & Programming

    48/89

    43 | P a g e

    6.4. Ruang Lingkup Variabel Global

    Variabel global ini akan berlaku pada semua fungsi yang ada dalam contoh di atas,

    variabel agedapat digunakan dalam fungsi coba dan fungsi utamanya yaitu main.

    6.5. Inisialisasi Variabel Global

    Data Type Initialiser

    int 0

    char '\0'

    float 0

    pointer NULL

    6.6. Structure Fungsi

    return type: tipe data yang dipakai ketika suatu fungsi mengembalikan nilai, dapat

    berupa int, char, float, dan tipe data lain kecuali void karena voidmenyatakan bahwa fungsi tersebut tidak mengembalikan nilai.

    argument/functionparamenter: suatu variabel yang digunakan untuk menerima suatu

    nilai yang dikirimkan ke dalam suatu fungsi oleh

    fungsi lain.

    Contoh:

    perlu diingat, untuk void, tidak perlu menggunakan keyword return.

    int fungsiJumlah (int a,int b){

    return a+b;}

    FunctionName (Argument1, Argument2, Argument3){

    Statement1;Statement2;Statement3;

    }

  • 7/22/2019 Diktat Algorithm & Programming

    49/89

    44 | P a g e

    atau jika mau tetap dipaksakan tetapi sangat tidak disarankan.

    6.7. Latihan

    6.7.1.Latihan 1Pemahaman konsep.

    1. Cobalah return pointer.2. Buatlah fungsi untuk menambahkan, mengurangkan.3. Dapatkah fungsi mereturn string (array of char)?

    6.7.2.Latihan 2 Code it.

    Fish a fish adalah sebuah game memancing ikan yang sedang terkenal

    dikalangan temanteman Hadi. Pada saat kuliah, Hadi diberikan tugas membuat

    sebuah game berbasiskan console oleh dosen Algorima dan Pemrogramannya.

    Karena Hadi sangat menyukai gametersebut, maka dia membuat gameCoepoe

    Fish a fish untuk memenuhi tugas tersebut.

    Sebagai temannya yang baik, bantulah Hadi dalam pembuatan program tersebut

    dengan ketentuan sebagai berikut:

    Pertama kali program dijalankan, program akan meminta user untukmelakukan registrasi yang meliputi namasertajenis kelamin.

    Validasikan:

    o Namayang diinput minimal 2 karakterdan maksimal 25 karakter.o User hanya dapat memasukkan huruf L untuk memilih laki-laki atau

    huruf P untuk memilih Perempuan untuk memilih jenis kelaminnya.

    void menu (){

    printf(Sky SkyDinning);printf(1. Fisherman Calmanary\n);printf(2. Chicken Snow with Almond\n);printf(3. Exit and choose other special menu\n);printf(select any [1..3] : );

    return;}

    void menu (){

    printf(Sky SkyDinning);printf(1. Fisherman Calmanary\n);printf(2. Chicken Snow with Almond\n);printf(3. Exit and choose other special menu\n);

    printf(select any [1..3] : );}

  • 7/22/2019 Diktat Algorithm & Programming

    50/89

    45 | P a g e

    Daftar dari Nama Ikan, Jenis Pemancingan dan Jenis Umpan yang ada dalamprogram adalah sebagai berikut:

    o 10 nama ikan beserta masingmasing harga ikan dengan ketentuansebagai berikut:

    o 5 jenis pancingan beserta masingmasing harga pancingan denganketentuan sebagai berikut:

    Index Nama Pancingan Harga Pancingan

    0 Fishing Pole $ 300

    1 Advanced Fishing Rod $ 600

    2 Advanced Fishing Pole $ 900

    3 Ultimate Fishing Rod $ 1200

    4 Ultimate Fishing Pole $ 1500

    o Jenis umpanbeserta harga umpan, yaitu:Index Nama Umpan Harga Umpan

    0 Green Big Worm $ 5

    o Jenis pancingan awal yang dimiliki oleh pemain adalah Fishing Rod.o Levelpemain = 1o Uangpemain = 1000o Total umpan= 10

    Index Nama Ikan Harga Ikan

    0 Guppy Blue $30

    1 Apple Snail $40

    2 Guppy Yellow $50

    3 Snake Snail $60

    4 Flag Fish $70

    5 Clown Fish $80

    6 Tuna $90

    7 Tiger Shark $100

    8 White Shark $110

    9 Whale $120

  • 7/22/2019 Diktat Algorithm & Programming

    51/89

    46 | P a g e

    Program mempunyai 5 menu utama:o 1. Lihat Profile Pemaino 2. Pancing Ikano 3. Jual Ikano 4. Belanja / Upgrade Perlengkapan Memancingo 5. Keluar

    Jika user memilih menu Lihat Profile Pemain (tekan tombol 1), makaprogram akan menampilkan level, uang, nama, jenis kelamin, jenis

    pancingan, serta total umpan yang dimiliki dan telah ditentukan oleh program

    sebelumnya.

    o Jika pada saat registrasi usermemasukkan L, maka tampilkan JenisKelamin adalah Laki-Laki.

    o Jika pada saat regisrasi user memasukkan P, maka tampilkan JenisKelamin adalah Perempuan.

    Jika usermemilih menu Pancing Ikan(tekan tombol 2), maka:o Program akan melakukan random angka dari 0 sampai 9. Hasil random

    tersebut akan menentukan index ikan mana yang terpancing.

    o Tampung dan hitung jumlah ikan yang tertangkap serta kurangitotal umpan pemain.

    o Jika total umpan sama dengan 0, maka pemain tidak bisa memilihmenu Pancing Ikan sampai dengan total umpan terisi kembali.

    Jika usermemilih menu Jual Ikan(tekan tombol 3), maka:o Program akan menampilkan jumlah ikan yang telah berhasil ditangkap

    oleh pemain.

    o Apabila user mengetikkan kata JUAL (tidak case sensitive), makaprogram akan menghitung total jual ikan dan menambahkannya dengan

    uang pemain dengan ketentuan sebagai berikut:

    Total jual ikan=jual ikan * harga ikan

    o Apabila user memasukkan kata EXIT (tidak case sensitive), makaprogram akan kembali ke menu utama.

  • 7/22/2019 Diktat Algorithm & Programming

    52/89

    47 | P a g e

    Jika user memilih menu Belanja / Upgrade Perlengkapan Memancing(tekan tombol 4), maka program akan menampilkan 3 submenu antara lain:

    o A. Upgrade Pancingano B. Beli Umpano C. Kembali Ke Menu Utamao Jika user memilih submenu Upgrade Pancingan (tekan tombol A),

    maka:

    Tampilkan 5 jenis pancingan beserta masing masing hargapancingan yang sudah ditentukan sebelumnya.

    Minta user untuk memasukkan nomer pancingan yang diinginkan.Validasikan agar nomer pancingan yang bisa diinput minimal 1 dan

    maksimal 5.

    Validasikan juga pemain hanya bisa mengupgrade pancingannyaapabila uang pemain lebih besar daripada harga pancingan.

    Jika kondisi tersebut telah terpenuhi, kurangi uang pemain sesuaidengan harga pancingan.

    Kemudian ubah level pemain sesuai dengan nomer pancingan yangtelah dipilih. Berilah keterangan pada setiap perubahan level.

    Ket : Sukses Meningkatkan Level., akan muncul jika nomerpancingan yang dibeli lebih besar dari level pemain.

    Ket : Level Tidak Berubah., akan munculjika nomer pancinganyang dibeli sama dengan level pemain.

    Ket : Level Menurun., akan muncul jika nomer pancinganyang dibeli lebih kecil dari level pemain.

    o Jikausermemilih submenu Beli Umpan(tekan tombol B),maka: Tampilkan jenis umpan beserta harga umpan yang telah ditentukan

    sebelumnya.

    Kemudian minta user untuk memasukkan jumlah umpan yang ingindibeli. Validasikan inputan minimal 0 dan maksimal sama dengan

    uang pemain / 5. Total umpan akan bertambah sesuai dengan banyaknya jumlah umpan

    yang dibeli.

    Uang pemain berkurang sebanyak:Uang Pemain = Uang Jumlah Umpan * Harga Umpan

  • 7/22/2019 Diktat Algorithm & Programming

    53/89

  • 7/22/2019 Diktat Algorithm & Programming

    54/89

    49 | P a g e

    Rancangan Layar Menu Pancing Ikan (Tekan Tombol 2)

    Rancangan Layar Jika Total Umpan Sama Dengan 0

    Rancangan Layar Menu Jual Ikan (Tekan Tombol 3)

  • 7/22/2019 Diktat Algorithm & Programming

    55/89

    50 | P a g e

    Rancangan Layar Jika UserMengetikkan Kata JUAL

    Rancangan Layar Menu Belanja/Upgrade Perlengkapan Memancing

    (Tekan Tombol 4)

    Rancangan Layar Submenu Upgrade Pancingan (Tekan Tombol A)

  • 7/22/2019 Diktat Algorithm & Programming

    56/89

    51 | P a g e

    Rancangan Layar Submenu Upgrade Pancingan (Lanjutan)

    Rancangan Layar Submenu Beli Umpan (Tekan Tombol B)

  • 7/22/2019 Diktat Algorithm & Programming

    57/89

    52 | P a g e

    Chapter 07Build-In Function

  • 7/22/2019 Diktat Algorithm & Programming

    58/89

    53 | P a g e

    7.1. Build-in Function Basic

    C language memiliki banyak sekali build-in function. Tetapi, beberapa yang akan

    dijelaskan di bawah ini adalah fungsi-fungsi yang wajib dimengerti. Terutama fungsi

    yang di bold.

    abort() clock() isalnum() log() sinh()abs() cosh() isalpha() memcmp() sqrt()

    acos() ctime() isdigit() modf() srand()

    asin() div() isgraph() pow() strcat()

    atan() exit() ispunct() putchar() strcmp()

    atexit() fabs() isspace() putenv() strerror()

    atof() floor() isupper() puts() time()

    atoi() fmod() kbhit() rand() tolower()

    atol() getchar() log10() remove() toupper()

    ceil() getenv() log2() rename()

    atoi () : ascii to integer / mengubah ascii menjadi integer

    isdigit() : mengecek apakah merupakan digit atau bukan. Jika iya return true.

    tolower() : mengubah karakter case huruf menjadi kecil. Contoh A -> a.

    toupper() : mengubah karakter case huruf menjadi besar. Contoh a -> A.

    7.2. Build-in function Example

    Untuk fungsi build-in random

    //1: untuk membuat hasil random tidak berulang, jika srand(time(NULL))

    dihilangkan, maka random akan menghasilkan angka berulang.

    Cobalah anda hilangkan dan recompile.

    Rumus random yang perlu diingat:

    int angka = rand() % (max-min + 1) + min

    Jika random 1-10 maka

    #include #include #include

    int main(){srand(time(NULL)); //1int number = rand()%10+1;

    printf(Randomed Number : %d\n,number);return 0;

    }

  • 7/22/2019 Diktat Algorithm & Programming

    59/89

    54 | P a g e

    int angka = rand()%(10-1 +1) + 1

    jadi: angka = rand() % 10 + 1

    7.3. Latihan

    7.3.1.Latihan 1 Pemahaman konsep.

    Pakailah fungsi toupper dan tolower untuk membuat program yang menghasilkan

    output sebagai berikut:

    Program meminta 3 kali inputan (gunakan looping)

    input:

    1. ABCDEFG //inputan ke-1.2. bCd // inputan ke-2.3. efgHIJ // inputan ke-3.

    output:

    1. AbCdEfG

    2. BcD

    3. EfGhIj

    1. Apa fungsi dari build-in function (strcmp, strcpy) ?2. Sebutkan 10 fungsi build-in yang pernah kalian pakai?3. Apakah printf itu build-in function?4. Apa itu atoi dan apa itu itoa?

    7.3.2.Latihan 2 Code it.

    String Manipulator adalah sebuah program yang dapat memanipulasi string

    sesuai dengan kemauan user. User dapat menggunakan program ini untuk

    belajar mengenai fungsi dalam library String.h.

    Berikut adalah deskripsi dari program tersebut:

    Pada awal program, userakan diminta untuk menginput sebuah string.Validasikan panjang dari stringtersebut harus antara 5 dan 30 karakter.

    Program terdiri dari 7 menu:1. Input new string2. Reverse the string3. Uppercase the string

  • 7/22/2019 Diktat Algorithm & Programming

    60/89

    55 | P a g e

    4. Check alphabet in the string5. Checking word in the string6. Split the string7. Exit

    Jika usermemilih menu Input new string (menu 1), maka Minta useruntuk menginput string baru. Validasikan panjang daristring tersebut

    antara 5 dan 30 karakter.

    Jika user memilih menu Reverse the string (menu 2), maka tampilkanstring dengan urutan yang dibalik.

    Jika usermemilih menu Uppercase the string(menu 3), maka tampilkanstring dengan huruf kapital

    Jika usermemilih menu Check alphabet in the string (menu 4), makaprogram akan mencari huruf dalam string tersebut dan akan menampilkan

    jumlah huruf yang terdapat dalam string tersebut.

    Jika usermemilih menu Checking word in the string (menu 5), maka:o Minta useruntuk menginput kata yang mau dicari.o Jika kata yang dicari ditemukan, maka tampilkan pesan [word] is

    found.

    o Jika kata yang dicari tidak ditemukan, maka tampilkan pesan [word] isnot found.

    Jika user memilih menu Split the string (menu 6), maka program akanmenampilkan kata yang ada dalam kalimat tersebut, dipisahkan dengan

    spasi.

    Jika usermemilih menu Exit (menu 7), maka program akan berakhir.

    Rancangan Layar Awal Program

  • 7/22/2019 Diktat Algorithm & Programming

    61/89

    56 | P a g e

    Rancangan Layar Main Menu

    Rancangan Layar menu Input new String (Menu 1)

    Rancangan Layar memilih menu Input new String (Lanjutan)

    Rancangan Layar menu Reverse the String (Menu 2)

  • 7/22/2019 Diktat Algorithm & Programming

    62/89

    57 | P a g e

    Rancangan Layar menu Uppercase the String (Menu 3)

    Rancangan Layar menu Check alphabet in the string (Menu 4)

    Rancangan Layar menu Checking word in the string (Menu 5)

    Rancangan Layar menu Checking word in the string (Lanjutan)

    Rancangan Layar menu Split the String (Menu 6)

  • 7/22/2019 Diktat Algorithm & Programming

    63/89

    58 | P a g e

    Chapter 08Rekursif

  • 7/22/2019 Diktat Algorithm & Programming

    64/89

    59 | P a g e

    8.1. Definisi Rekursif

    Fungsi rekursif adalah sebuah fungsi yang memanggil dirinya sendiri, dalam hal ini

    suatu fungsi memanggil dirinya sendiri dengan memanggil nama dari fungsi

    tersebut. Rekursif akan berfungsi dengan sangat baik pada program yang bersifat

    Devide and Conquer.

    8.2. Contoh fungsi rekursif

    Perlu diperhatikan!!!!

    Fungsi rekursif harus memiliki setidaknya 1 kondisi yang digunakan untuk keluar dari

    proses pengulangan pemanggilan fungsi tersebut (biasanya disebut dengan base-

    case).Jika tidak fungsi ini akan memanggil dirinya sendiri sampai terjadi runtime stack

    overflows.

    Contoh di atas setara dengan code dibawah ini dengan iteration (perulangan biasa)

    int factorial(unsigned int number){int f = 1;while(number < 0)f *= number--;return f;

    }

    # include

    int factorial(unsigned int number){

    if (number

  • 7/22/2019 Diktat Algorithm & Programming

    65/89

    60 | P a g e

    8.3. Latihan

    8.3.1.Latihan 1Pemahaman konsep.

    1. Apa arti devide and conquer, carilah definisinya!2. Fungsi rekursif biasanya dipakai untuk menambah readability dari

    pemahaman program. Apa arti readability disini?

    3. Carilah contoh kasus yang hanya bisa diselesaikan hanya dengan rekursif.

    8.3.2.Latihan 2 Code it.

    Pada mata kuliah Kalkulus I, William mempelajari tentang polinom (a+b)n.

    Polinom (a+b)n adalah sebuah deret matematika. Contoh, (a+b)2 akan

    menghasilkan (a2 + 2ab + b2). Untuk mempermudah pembelajaran tentang

    polinom tersebut, ia membuat sebuah program rekursif. Program tersebut dibuat

    dengan ketentuan sebagai berikut:

    Pertama kali program dijalankan, minta user untuk menginput pangkatpolinom sebagai pangkat. Validasikan pangkat yang diinput minimal 1 dan

    maksimal 9.

    Kemudian, minta user untuk menginput bilangan a. Validasikan bilangan ayang diinput minimal 0 dan maksimal 9.

    Setelah itu, minta useruntuk menginput bilangan b. Validasikan bilangan byang diinput minimal 0 dan maksimal 9.

    Hitung dan tampilkan deret hasil perhitungan (a+b)nsesuai inputan dari user.Contoh:

    (a+b)5= 1(a5*b0) + 5(a4*b1) + 10(a3*b2) + 10(a2*b3) + 5(a1*b4) + 1(a0*b5)

    Konstanta didapatkan dari segitiga pascal.

    Contoh:

    1

    1 1

    1 2 1 -> (a+b)2 = a2+ 2ab + b2

    1 3 3 1 -> (a+b)

    3

    = a

    3

    + 3a

    2

    b + 3ab

    2

    + b

    3

    1 4 6 4 1 -> (a+b)4 = a4+ 4a3b + 6a2b2+ 4ab3+ b4

    Hitung dan tampilkan hasil perhitungan dari masing-masing sukubilangandalam deret tersebut.

  • 7/22/2019 Diktat Algorithm & Programming

    66/89

    61 | P a g e

    Hitung dan tampilkan hasil penjumlahan dari setiap hasil perhitungan sukubilangan.

    Program akan menanyakan Ingin mengulang [y/t] ?, tekan Y atau yuntuk untuk mengulang program dari awal dan tekan T atau t untuk keluar

    dari program.

    Rancangan Layar Awal Program Meminta Inputan Dari User

    Rancangan Layar Akhir Program

  • 7/22/2019 Diktat Algorithm & Programming

    67/89

    62 | P a g e

    Chapter 09Operasi File

  • 7/22/2019 Diktat Algorithm & Programming

    68/89

    63 | P a g e

    9.1. Teori dasar file.

    Dengan menggunakan file operation, Anda dapat mengakses file. File yang diakses

    adalah file berjenis flat file(berformat text).

    Contoh:

    memberlist.txt

    9.2. Contoh deklarasi file.

    9.3. Membuka file

    9.4. Mode pada file operation

    r - open for reading

    w - open for writing (file need not exist)

    a - open for appending (file need not exist)

    r+ - open for reading and writing, start at beginning

    w+ - open for reading and writing (overwrite file)

    a+ - open for reading and writing (append if file exists)

    Anda juga dapat membuka file secara binary, gunakan r+b atau rb+

    #include

    int main(){FILE *in;in = fopen(baca.txt, r); //r=baca, w=tulis, a=tambah

    FILE *fopen(const char *filename, const char *mode);

    #include

    int main(){

    FILE *in;}

  • 7/22/2019 Diktat Algorithm & Programming

    69/89

    64 | P a g e

    9.5. Menutup file

    Isilah file baca.txt dengan:

    Bina

    Sky

    Network

    World

    International

    #include

    int main(){

    FILE *in, *out; //in untuk input, out untuk output

    char temp[25];in = fopen(baca.txt, r); //r=baca, w=tulis, a=tambah

    if(!in) //cek apakah open file berhasil

    {

    perror(File not found); //cetak error.

    getchar();

    return 1; //return error condition;

    }

    while(!feof(in)){ //cek apakah sudah mencapai akhir file

    fscanf(in,%s,,temp);

    printf(Hasil baca : %s\n,temp);

    }

    fclose(in);

    out = fopen(coba.txt,w); //1

    fprintf(out,Code selesai tercetak); //2

    fclose(out); //3

    }

    #include

    int main(){

    FILE *in;in = fopen(baca.txt, r); //r=baca, w=tulis, a=tambahfclose(in);

    }

    int fclose(FILE *a_file);

  • 7/22/2019 Diktat Algorithm & Programming

    70/89

    65 | P a g e

    9.6. Latihan

    9.6.1.Latihan 1 Pemahaman konsep.

    1. Carilah kesimpulan dari code sebelumnya. (code pada contoh secarakeseluruhan).

    2. Apa fungsi code //1?3. Apa fungsi code //2?4. Apa fungsi code //3?5. Apakah fungsi fclose boleh dihilangkan?

    9.6.2.Latihan 2 Code it.

    Anda sebagai seorang programmer dari suatu software house diminta oleh

    seorang clientuntuk membuat sebuah program untuk mencatar list score rata-

    rata dari sebuah game DotAdengan ketentuan seperti berikut:

    Pertama kali program dijalankan, program akan membaca isi dari filesoal10.txt yang akan digunakan untuk mencatat nama pemain, skor rata-

    rata, dan banyak bermain.

    Program terdiri dari 5 menu yaitu:o Lihat recordo Tambah recordpemaino Tambah pemaino Hapus pemaino Simpan recorddan keluar

    Jika user memilih menu Lihat record (tekan tombol 1), maka tampilkannama pemain, average score, dan banyak bermain yang didapat dari file

    soal10.txt.

    Jika usermemilih menu Tambah record Pemain(tekan tombol 2), maka:o Minta inputan nama pemain. Validasikan panjang karakter nama pemain

    minimal 1 dan maksimal 10 karakter.

    o Minta inputan nilai pemain. Validasikan nilai tersebut minimal 0 danmaksimal 100.

    o Jika nama pemain tidak ada dalam list pemain, maka tampilkan pesanNama tidak ditemukan!

    o Jika nama pemain ada dalam list pemain, maka average score daripemain tersebut akan berubah dengan rumus:

  • 7/22/2019 Diktat Algorithm & Programming

    71/89

    66 | P a g e

    Average scorebaru =

    ((average scorelama x banyak bermain) + nilai pemain) / (banyak bermain+1)

    Jika usermemilih menu Tambah Pemain(tekan tombol 3), maka:o Minta inputan nama pemain yang mau ditambah. Validasikan panjang

    karakter minimal 1 dan maksimal 10.

    o Daftar nama pemain akan bertambah dengan nama pemain yang barudengan average scoredan banyak bermain 0. Kemudian tampilkan pesan

    Berhasil memasukkan pemain baru..

    Jika usermemilih menu Hapus pemain (tekan tombol 4), maka:o Minta inputan nama pemain yang ingin dihapus. Validasikan panjang

    karakter nama tersebut minimal 1 dan maksimal 10.

    o Jika nama pemain yang ingin dihapus tidak ada dalam daftar pemain,maka tampilkan pesan Nama tidak ditemukan!

    o Jika nama pemain yang ingin dihapus ada dalam daftar pemain, makahapuslah nama pemain tersebut dari daftar pemain beserta data-datanya

    dan tampilkan pesan Nama sudah dihapus..

    Jika user memilih menu Simpan record dan keluar (tekan tombol 5),maka daftar nama pemain akan disimpan dalam filesoal10.txt dan program

    selesai.

    Rancangan Layar Menu Utama

  • 7/22/2019 Diktat Algorithm & Programming

    72/89

    67 | P a g e

    Rancangan Layar Menu Lihat Record

    Rancangan Layar Menu Tambah Record Pemain

    Rancangan Layar Menu Tambah Pemain

  • 7/22/2019 Diktat Algorithm & Programming

    73/89

    68 | P a g e

    Rancangan Layar Menu Hapus Pemain

  • 7/22/2019 Diktat Algorithm & Programming

    74/89

    69 | P a g e

    Chapter 10Sorting

  • 7/22/2019 Diktat Algorithm & Programming

    75/89

    70 | P a g e

    10.1. Teori dasar Bubble Sort

    Bubble sort adalah salah satu teknik sorting yang sederhana dalam algoritma.

    Sorting menggunakan bubblesortmenggunakan perbandingan di antara dua data.

    Untuk lebih jelasnya perhatikan simulasi di bawah ini, simulasi sorting dilakukan

    secara ascendingorder(mulai dari nilai terkecil ke nilai terbesar):

    Siapkan variabel bernama

    temp Dan kumpulan datayang ingin di sorting

    dimasukkan ke dalam

    sebuah variabel berarraysejumlah data yang tersedia

    Bandingkan dua data yangterdapat dalam variabel

    berarray tersebut di mulai

    dari index array palingbelakang

    Cek apakah index terakhirlebih besar atau lebih kecil

    dari index kedua terakhir,

    jika lebih besar maka tukarkedua data, jika tidakdiabaikan, dalam kasus

    gambar di samping, dua nilai

    diabaikan tidak ditukar

  • 7/22/2019 Diktat Algorithm & Programming

    76/89

    71 | P a g e

    Lanjutkan dengan

    membandingkan dua nilaiselanjutnya.

    Karena nilai dari index didepannya lebih besar, maka

    kedua nilai ditukar

    Nilai 10 dari index [2]disimpan terlebih dahulu ke

    variabeltemp agar nilai

    tidak hilang pada saatpenukaran nilai

    Nilai 30 dipindahkan keindex [2].Sehingga variabel denganindex [2] bernilai 30sekarang.

  • 7/22/2019 Diktat Algorithm & Programming

    77/89

    72 | P a g e

    Nilai 10 yang sudahdisimpan di temp, kemudiandipindahkan dalam variabel

    dengan index [1], dalam hal

    ini penukaran nilai sudahselesai

    Cek kembali urutan angka,

    apakah sudah berurutansecara ascending, bilabelum, langkah kembalidiulangi dari index terakhir

    Karena nilai index di depan

    index [1] lebih besar, maka

    kedua nilai ditukar denganlangkah yang sama sepertisebelumnya

    Lanjutkan denganmembandingkan nilai 2

    index selanjutnya

  • 7/22/2019 Diktat Algorithm & Programming

    78/89

    73 | P a g e

    10.2. Bubble sort Code

    Swap code (fungsi tukar)

    Fungsi inilah yang dipakai untuk pertukaran dua data.

    Final Code:

    #include #include const int MAX_ELEMENTS = 10;

    void swap(int *x,int *y){int temp;temp = *x;*x = *y;*y = temp;

    }void bublesort(int list[], int n){

    int i,j;for(i=0;i

  • 7/22/2019 Diktat Algorithm & Programming

    79/89

    74 | P a g e

    10.3. Latihan

    10.3.1. Latihan 1Pemahaman konsep.

    1. Carilah contoh coding sorting yang lain, merge sort, quick sort, bubblesort with flag!

    2. Mana yang lebih cepat merge sort, bubble sort, atau quick sort?3. Apa fungsi dari sorting?

    10.3.2. Latihan 2 Code it.

    XXII membuka sebuah cabamg baru bernama Layar Tancep suka-suka dan

    anda ditunjuk sebagai kepala IT untuk usaha tersebut. Tugas pertama anda

    sebagai kepala bidang IT adalah untuk membuat sebuah aplikasi

    menggunakan bantuan filedengan ketentuan sebagai berikut:

    Pertama kali program dijalankan, program akan membaca filesoal11.txt.Pada jadwal tersebut terdapat mengenai jadwal film yang akan diputar,

    waktu pemutaran, dan jumlah kursi yang tersisa.

    Program memiliki 6 pilihan, yaitu:o 1. Listfilmo 2. Sort ascendingberdasarkan jam tayango 3. Sort descendingberdasarkan nama filmo 4. Tambah daftar filmo 5. Pesan tiketo 6. Keluar

    int main(){int list[MAX_ELEMENTS];int i = 0;// generate random numbers and fill them to the listfor(i = 0; i < MAX_ELEMENTS; i++ ){list[i] = rand();

    }printf("The list before sorting is:\n");printlist(list,MAX_ELEMENTS);

    // sort the listbublesort(list,MAX_ELEMENTS);

    // print the resultprintf("The list after sorting using bubble sortingalgorithm:\n");printlist(list,MAX_ELEMENTS);return 0;

    }

  • 7/22/2019 Diktat Algorithm & Programming

    80/89

    75 | P a g e

    Jika usermemilih menu List film(tekan tombol 1), maka program akanmenampilkan list layar tancep dengan format nomor, nama film, jam

    tayang, dan jumlah kursi yang kosong yang masing-masing didapatkan

    dari filesoal11.txt

    Jika user memilih menu Sort ascending berdasarkan jam tayang(tekan tombol 2), maka list film akan disorting secara ascending

    berdasarkan jam tayang. Kemudian tampilkan pesan Silahkan melihat

    List Film di Menu 1

    Jika user memilih menu Sort descending berdasarkan nama film(tekan tombol 3), maka list film akan disorting secara descending

    berdasarkan nama film. Kemudian tampilkan pesan Silahkan melihat List

    Film di Menu 1 .

    Jika usermemilih menu Tambah daftar film (tekan tombol 4), maka:o Minta inputan nama film yang baru. Validasikan panjang karakter

    nama film tersebut minimal 1 dan maksimal 10 karakter.

    o Minta inputan jam tayang. Validasikan jam tersebut minimal 0 danmaksimal 23.

    o Minta inputan menit tayang. Validasikan menit tersebut minimal 0dan maksimal 59.

    o Kemudian tampilkan pesan Berhasilmenambah film baru^^ Jika usermemilih menu Pesan Tiket, maka:

    o

    Minta inputan nama film yang mau dipesan. Validasikan panjanginputan minimal 1 dan maksimal 10 karakter.

    o Jika nama film yang mau dipesan tidak ada dalam list film, makatampilkan pesan Film tidak ditayangkan di Layar Tancep

    o Jika nama film yang mau dipesan ada dalam list film, maka mintainputan jumlah tiket yang mau dipesan. Validasikan jumlah tiket

    minimal 1 dan maksimal jumlah kursi kosong film tersebut .

    o Kemudian tampilkan pesan Pemesanan berhasil^^ Jika usermemilih menu Keluar(tekan tombol 6), maka program selesai.

  • 7/22/2019 Diktat Algorithm & Programming

    81/89

  • 7/22/2019 Diktat Algorithm & Programming

    82/89

    77 | P a g e

    Rancangan Layar Menu Sort Descending Berdasarkan Nama Film

    Rancangan Layar Jika UserMemilih Menu Tambah Daftar Film

    Rancangan Layar Jika UserMemilih Menu Pesan Tiket

  • 7/22/2019 Diktat Algorithm & Programming

    83/89

    78 | P a g e

    Chapter 11

    String

  • 7/22/2019 Diktat Algorithm & Programming

    84/89

    79 | P a g e

    11.1. Teori dasar string.h

    Pada header string.h, terdapat banyak sekali fungsi-fungsi build-in yang berguna.

    Berikut ini akan dibahas fungsi-fungsi header string.hyang dapat digunakan dan

    akan sering Anda jumpai untuk menyelesaikan masalah-masalah ujian Anda nanti.

    11.2. Penjelasan detail build-in function string.h

    11.2.1.Fungsi strstr

    Digunakan untuk mengambil bagian dari suatu String.

    11.2.2.Fungsi strtok

    Digunakan untuk memisahkan String berdasarkan karakter tertentu.

    #include #include

    int main(){

    char input[16] = "abc,defghi";char *ptr;

    ptr= strtok(input, ","); //indeks yang ke3

    diganti NULL

    if (ptr) // nilai selain 0 atau NULL adalah TRUEprintf("%s\n", ptr);

    ptr = strtok(NULL, ",");if (ptr)printf("%s\n", ptr);getchar ();return 0;

    }

    #include #include

    int main (){

    char *str1 = Algorithm and Programming;

    char *str2 = Algo,char *ptr;ptr = strstr (str1, str2);printf (Result = %s\n, ptr);getchar ();return 0;

  • 7/22/2019 Diktat Algorithm & Programming

    85/89

    80 | P a g e

    11.2.3.Fungsi strrev

    Digunakan untuk membalikkan string.

    Contoh:

    11.2.4.Fungsi strcmp / strcmpi

    Membandingkan 2 string:

    strcmp: tanpa membedakan huruf besar kecil.

    strcmpi: membedakan huruf besar huruf kecil.

    Fungsi strcmpi (i = ignore case).

    Contoh:

    Nilai yang dikembalikan ada 3:

    ( < 0 ), nilai ascii string1 lebih kecil dari nilai ascii string2

    ( == 0 ), kedua string sama

    ( > 0 ), nilai ascii string1 lebih besar dari nilai ascii string2

    11.2.5.Fungsi strlen

    Menghitung panjang suatu string.

    Contoh:

    Nilai yang dikembalikan adalah jumlah karakter string tersebut.

    strlen (string);

    strcmp (string1, string2);

    #include

    #include

    int main(){

    char *word = "maya";printf("Before strrev(): %s\n", word);strrev(word);printf("After strrev() : %s\n", word);getchar ();return 0;

    }

  • 7/22/2019 Diktat Algorithm & Programming

    86/89

    81 | P a g e

    11.2.6.Fungsi tolower

    Digunakan untuk menjadikan huruf besar menjadi huruf kecil

    tambahkaninclude

    Contoh:

    11.2.7.Fungsi toupper

    Digunakan untuk mengubah huruf kecil menjadi huruf besar

    Cara kerjanya sama dengan tolower.

    11.2.8.Fungsi strcpy

    Digunakan untuk mengcopy string ke dalam string lain.

    Contoh:

    Mengcopy string1 ke string2

    strcpy (string2, string1);

    #include #include #include

    int main(){

    int length, i;char *string = "ThIs IS A StRiNg";

    length = strlen(string);for (i=0; i

  • 7/22/2019 Diktat Algorithm & Programming

    87/89

    82 | P a g e

    11.3. Latihan

    11.3.1. Latihan 1 Pemahaman konsep.

    1. Carilah dan pahamilah fungsi-fungsi lain di string.h2. Bagaimana cara memakai strlwr dan strupr?3. Apa fungsi dari strlwr, dan strupr?

    11.3.2. Latihan 2 Code it.

    Buatlah sebuah program yang digunakan untuk mengubah sebuah string

    dengan menggunakan fungsi dalam library string.h. Berikut adalah deskripsi

    dari program tersebut:

    Pada awal program, program akan menampilkan string yang ada Program terdiri dari 6 menu:

    o 1. Input the Stringo 2. Length of the Stringo 3. Reverse the Stringo 4. Uppercase the Stringo 5. Lowercase the Stringo 6. Exit

    Jika usermemilih menu Input the String(menu 1), maka:o Minta user untuk menginput string baru. Validasikan panjang dari

    stringtersebut adalah antara 5 dan 50 karakter.

    Jika usermemilih menu Length of the String(menu 2), maka:o Validasikan apakah string sudah dimasukkan atau belum. Jika string

    belum dimasukkan, maka tampilkan pesan String are not inputed

    yet....

    o Jika string sudah dimasukkan, maka tampilkan panjang dari stringtersebut.

    Jika usermemilih menu Reverse the String (menu 3), then:o Validasikan apakah string sudah dimasukkan atau belum. Jika string

    belum dimasukkan, maka tampilkan pesan String are not inputedyet....

    o Jika stringsudah dimasukkan, maka balik urutan string tersebut dantampilkan ke layar.

    Jika usermemilih menu Uppercase the String (menu 4), then:

  • 7/22/2019 Diktat Algorithm & Programming

    88/89

    83 | P a g e

    o Validasikan apakah string sudah dimasukkan atau belum. Jika stringbelum dimasukkan, maka tampilkan pesan String are not inputed

    yet....

    o Jika string sudah dimasukkan, maka ubah string tersebut menjadihuruf kapital dan tampilkan ke layar.

    Jika usermemilih menu Lowercase the String (menu 5), then:o Validasikan apakah string sudah dimasukkan atau belum. Jika string

    belum dimasukkan, maka tampilkan pesan String are not inputed

    yet....

    o Jika string sudah dimasukkan, maka ubah string tersebut menjadihuruf kecil dan tampilkan ke layar.

    Jika usermemilih menu Exit (menu 6), then program will ends.

    Rancangan Layar Main Menu

    Rancangan Layar Jika UserMemilih Menu Input the String Menu

    (Menu 1)

    Rancangan Layar Jika UserMemilih Menu Length of the String (Menu 2)

  • 7/22/2019 Diktat Algorithm & Programming

    89/89

    84 | P a g e

    Rancangan Layar Jika UserMemilih Menu Reverse the String (Menu 3)

    Rancangan Layar Jika UserMemilih Menu Uppercase the String

    (Menu 4)

    Rancangan Layar Jika UserMemilih Menu Lowercase the String

    (Menu 5)