Programming Language Concept – Data Types

Data type menjelaskan kumpulan objek data dan sebuah set operasi yang telah ditetapkan pada objek tersebut. Descriptor adalah kumpulan atribut dari sebuah variabel. Salah satu permaslahanan desain untuk semua tipe data adalah operasi apa yang didefinisikan dan bagaimana mereka ditentukan?

Primitive Data Type

Primitive data type adalah tipe data yang berbentuk primitive, dan pasti ada dalam setiap bahasa pemrograman.

Contoh dari primitive data type :

– Integer

– Floating Point

– Complex

– Decimal

– Boolean

– Character

 

Character String Type

Character String Type adalah satu tipe di mana nilai-nilai terdiri dari urutan karakter. Karakter string yang konstan digunakan untuk label output, dan input

dan output dari semua jenis data yang sering dilakukan dalam hal string.

Adapun Permasalahan pada character string type :

o   Apakah tipe primitif atau hanya jenis khusus array?

o   Haruskah panjang string statis atau dinamis?

Tipe – tipe operasi :

o   Assignment and copying

o   Comparison (=, >, etc.)

o   Catenation

o   Substring reference

o   Pattern matching

 

User Defined Ordinal Type

User defined ordinal type Adalah kisaran nilai yang mungkin dapat dengan mudah terkait dengan himpunan bilangan bulat positif.

3 tipe data user defined primitive :

o   Integer

o   Char

o   Boolean

 

Enumeration Type

Enumeration type  adalah semua nilai yang mungkin, dimana dinamai konstan, dan memberikan, atau, disebutkan  dalam definisi. Fungsinya untuk memudahkan dalam tipe data grup.

Contoh :

enum days {Mon, Tue, Wed, Thu, Fri, Sat, Sun};

 

Subrange Type

Subrange type adalaah Sebuah subsequence berdekatan memerintahkan tipe ordinal

 

Implementation of User-Defined Ordinal Types

Enumeration type diimplementasikan sebagai Integer

 

Subrange types diimplementasikan seperti type parent dengan kode dimasukkan (oleh kompiler) untuk membatasi tugas untuk subrange variabel

 

Array Type

Array adalah agregat homogen elemen data di mana seorang individu elemen diidentifikasi oleh posisinya dalam agregat, relatif terhadap elemen pertama.

 

Subscript Binding and Array Categories

–          Static = rentang subscript yang statis terikat dan alokasi penyimpanan statis (dilakukan sebelum run time).

–          Fixed stack-dynamic = rentang subscript yang statis terikat, namun alokasi dilakukan pada saat deklarasi elaborasi selama

eksekusi.

–          Stack-dynamic = rentang subscript dan alokasi penyimpanan dinamis terikat pada waktu elaborasi.

–          Fixed heap-dynamic = rentang subscript dan storage binding keduanya tetap, setelah penyimpanan dialokasikan.

–          Heap-dynamic = pengikatan rentang subscript dan alokasi penyimpanan dinamis dan dapat berubah beberapa kali selama seumur hidup array.

 

  • Heterogeneous Arrays

Heterogeneous array adalah satu di mana unsur-unsur tidak perlu dari jenis yang sama.

Rectangular array adalah array multidimensional di mana semua baris memiliki jumlah yang sama elemen dan semua kolom memiliki jumlah yang sama dari elemen. Array Rectangular bermodelkan meja persegi panjang.

jagged array adalah di mana panjang dari baris tidak perlu menjadi sama. Sebagai contoh, sebuah matriks jagged dapat terdiri dari tiga baris, satu dengan 5 elemen, satu dengan 7 elemen, dan satu dengan 12 elemen.

 

  • Associative Arrays

Associative Arrays adalah koleksi tak berurut elemen data yang diindeks oleh jumlah yang sama nilai-nilai yang disebut kunci.

 

Record Type

Record adalah jumlah elemen data di mana unsur-unsur individu

diidentifikasi oleh nama dan diakses melalui offset dari awal

struktur. Record adalah agregat mungkin heterogen elemen data di mana unsur-unsur individu diidentifikasi dengan nama

 

Tuple Type

Tuple adalah adalah tipe data yang mirip dengan catatan, kecuali bahwa unsur-unsur yang tidak bernama .

Digunakan dalam Python, ML, dan F # untuk memungkinkan fungsi untuk kembali beberapa nilai

 

List Type

Lists pertama kali didukung dalam bahasa pemrograman fungsional LISP. Mereka selalu menjadi bagian dari bahasa-bahasa fungsional, tetapi dalam beberapa tahun terakhir mereka telah menemukan cara mereka ke dalam beberapa bahasa imperatif.

Lists  dalam Skema dan LISP dipisahkan oleh tanda kurung dan

unsur tidak dipisahkan oleh tanda baca apapun. Sebagai contoh,

(A B C D)

Nested lists memiliki bentuk yang sama, sehingga kita bisa memiliki

(A (B C) D)

 

Union Type

Union adalah jenis variabel yang dapat menyimpan nilai jenis yang berbeda pada waktu yang berbeda selama eksekusi program. Sebagai contoh kebutuhan untuk jenis serikat, mempertimbangkan tabel konstanta untuk compiler, yang digunakan untuk menyimpan konstanta ditemukan dalam program yang dikompilasi.

 

Pointer and Reference Types

Sebuah variabel tipe pointer memiliki berbagai nilai-nilai yang terdiri dari alamat memori dan nilai khusus, nil. Memliki kemampuan untuk indirect addressing . memberikan cara untuk me manage dynamic memory. Pointer dapat digunakan sebagai akses lokasi di area penyimpanan dinamis(Heap)

 

Pointer Operations

Terdiri dari 2 operasi :

Assignment = digunakan untuk menetapkan nilai variabel pointer untuk beberapa alamat berguna

Deferencing = menghasilkan nilai yang disimpan di lokasi yang diwakili oleh nilai pointer ini

 

  • Problem pada Pointer

Dangling pointers = Sebuah pointer menunjuk ke variabel tumpukan-dinamis yang telah deallocated

Lost heap-dynamic variable = Sebuah variabel heap-dinamis dialokasikan yang tidak lagi dapat diakses oleh program pengguna

 

Reference Counter

Maintain counter di setiap cell yang menyimpan jumlah pointer yang saat ini menunjuk pada cell

Kekurangan : ruang yang dibutuhkan, waktu eksekusi yang dibutuhkan, komplikasi untuk sel terhubung sirkuler

keuntungan :intrinsik tambahan, sehingga penundaan yang signifikan dalam pelaksanaan aplikasi dihindari

 

Type Checking

Type checking adalah kegiatan memastikan bahwa operan dari operator adalah dari jenis yang compatible .

Compatible type adalah salah satu yang legal bagi operator, atau diperbolehkan di bawah aturan bahasa yang akan dikonversi secara implisit, dengan kode compiler yang dihasilkan, untuk tipe legal. Konversi otomatis ini disebut coercion.

Type error adalah aplikasi operator untuk operan dari tipe yang tidak layak

 

Strong Typing

Strong Typing adalah jika jenis kesalahan selalu terdeteksi. Ini mensyaratkan bahwa semua jenis operan dapat ditentukan, baik pada waktu kompilasi atau run time. Pentingnya String typing terletak pada kemampuannya untuk mendeteksi semua penyalahgunaan variabel yang menghasilkan jenis kesalahan. Strong typing juga memungkinkan deteksi, pada waktu berjalan, kegunaan dari jenis yang salah nilai dalam variabel yang dapat menyimpan nilai lebih dari satu jenis.

Programming Language Concept – Names, Bindings, and Scopes

Names

Names atau yang berarti penamaan bahasa pemrograman C, memiliki beberapa aturan, antara lain:

  • Hanya holeh menggunakan huruf (besar & kecil), angka, dan/atau huruf.
  • Tidak boleh menggunakan blank (spasi).
  • Karakter pertama harus berupa underscore atau huruf.
  • Tidak boleh menggunakan reserved words (seperti int, break, if, dan lain-lain).
  • Tidak boleh men-delcare 2 kali suatu variable dengan nama yang sama dalam 1 scope.
  • Tidak dapat menggunakan konstanta yang sudah ada dalam header file.

Karena banyaknya aturan-aturan dalam penamaan tersebut maka kami memiliki beberapa tips yang kiranya akan berguna pagi kalian dalam mempelajari bahasa pemrograman C:

  • Jangan menggunakan nama variable yang terlalu panjang atau yang membingungkan anda.
  • Jangan menggunakan underscore sebagai karakter pertama variable.
  • Nama variable itu case sensitive.
  • Walaupun tidak boleh menggunakan reserved words, tetapi masih bisa menggunakan kata yang sama dengan menggunakan huruf besar (karena case sensitive).

 

Variables

Variable itu adalah sebuah tempat atau memory yang digunakan sebagai tempat penyimpanan data. Variable memiliki format penulisan yang khusus:

<data type> <Variable name> = <initial value>;

Contoh:

int a;

*keterangan:

Int, merupakan <data type> untuk nilai angka

a, merupakan nama variable yang akan digunakan untuk menyimpan data

int harga= 10000;

*keterangan:

int, merupakan <data type>

harga, merupakan nama variable

10000, merupakan value yang ingin kita simpan di dalam variable harga

Jenis-jenis data type:

Character (char) Untuk karakter
Integer (int) Untuk angka (bukan desimal)
Floating Point (float) Untuk angka (desimal)
Double Floating Point (double) Rangenya dua kali dari float
Void (void) Kosong

 

Jenis-jenis data modifier:

  • Signed
  • Unsigned
  • Long
  • Short

 

Bindings

Binding merupakan asosiasi antara attribute dengan entity, seperti antara variable dengan tipenya atau nilai, atau antara sebuah operasi dengan symbol. Binding time adalah waktu yang dibutuhkan dalam melakukan binding. Contoh sederhananya adalah:

count = count +5;

Binding memiliki beberapa tipe, antara lain:

  • Static binding, yang terjadi sebelum program berjalan, dan tetap sama selama program eksekusi.
  • Dynamic binding, yang terjadi ketika program sedang berjalan dan nilainya dapat berubah selama program dieksekusi.

Selain itu binding juga memiliki storage yang tidak jauh berbeda dengan variable, storage ini dibedakan menjadi 2 tipe:

  • Allocation, menambil cell dari kolom memori cell yang tersedia
  • Deallocation, sel memori yang telah tidak terikat dari variabel dikembalikan ke kolam memori yang tersedia.

Kategori Binding:

  • Static:
    • Cell yang terikat pada memory cell sebelum eksekusi dimulai, dan tetap terikat pada memory cell yang sama sampai program eksekusi selesai.
    • Kelebihan: semua addressing pada static variable bersifat langsung.
    • Kekurangan: mengurangi fleksibilitas(tidak support untuk reculsive program)
  • Stack Dynamic:
    • Storage binding dibuat ketika deklarasi statement dijelaskan, tapi tipe nya bersifat terikat.
    • Kelebihan: support dynamic storage (reculsive).
    • Kekurangan: waktu akses yang lambat karena addressing tidak langsung
  • Explicit Hype Dyanmic:
    • Abstrak memory cell yang di alokasi dan dealokasi dengan instruksi eksplicit run-time yang ditulis oleh programmer. Variable nya hanya bisa dialokasikan oleh pointer atau reference variable
    • Kelebihan: storage manajemen yang dinamis.
    • Kekurangan: tidak efisien dan tidak handal.
  • Implicit Hype Dynamic:
    • Implicit heap dynamic terikat dengan heap storage ketika ada nilai yang ditugaskan
    • Kelebihan: memiliki fleksibilitas yang memperbolehkan high generic code untuk ditulis ulang
    • Kekurangan: run-time overhead mempertahankan semua atribut dinamis, yang akan mencakup jenisarray subscript dan range.

 

Scopes

Scope atau yang dikenal sebagai ruang lingkup adalah kode sumber bersarang pada awal blok titik deklarasi dan berakhir di ujung blok. Sifat kode sumber itu akan hanya berlaku pada ruang lingkup tersebut tergantung atas penempatannya. Dalam sebuah scope ada yang disebut dengan Global Variable dan Loval Variable:

  • Local Variable: variable yang didirikan di dalam function atau blok suato program, variable tersebut akan bersifat lokal hanya bisa digunakan didalam ruang lingkup itu
  • Global Variable: variable yang didirikan diluar function, biasanya terletak sesudah file-header sebelum function, variable tersebut akan bersifat global, bisa digunakan dimanapun dan semua function.

 

Programming Language Concept – Syntax & Semantics

Syntax merupakan aturan yang mendefinisikan suatu bentuk bahasa, syntax itu tidak mengerti arti atau isi dari suatu kalimat, yang memiliki tugas untuk mengartikannya adalah semantic.

 

Kriteria Syntax

Syntax memiliki beberapa kriteria yang harus dipenuhi agar dapat disebut syntax:

Readability : Mudah dibaca
Writeability : Mudah ditulis
Verifiability : Verifikasi Program
Kemudahan Translasi : Penerjemahan yang cepat & menghasilkan kode yang efisien
Pengurangan Ambiguitas : Dua arti atau lebih, contoh Array (pemanggilan fungsi)

 

Fungsi Utama Syntax

Syntax memiliki 2 fungsi utama, yaitu:

  1. Menyediakan bentuk-bentuk notasi untuk komunikasi antar programmer
  2. Pemroses bahasa pemrograman sehingga dapat mempermudah pembuatan suatu program
  • Elemen syntax

Elemen-elemen dalam syntax:

  1. Himpunan Karakter
  2. Indentifier
  3. Simbol untuk operator
  4. Komentar
  5. Noise Word
  6. Keyword & Reserved Word
  7. Blank
  8. Delimiter & Tanda Kurung
  9. Ekspresi

 

Aturan syntax

Dalam bahasa pemrograman C, ada beberapa syntax penting yang digunakan untuk memulai sebuah pembuatan program:

  1. Header “<stdio.h>”, berlaku sebagai library untukt syntax bahasa C
  2. Main Function ”int main ()”, berlaku sebagai plateform atau wadah
  3. Pengembalian nilai “return 0”

Dalam bahasa C ada tanda yang sangat penting yaitu titik koma “;” dan juga kurung kurawal “{}”. Titik koma digunakan sebagai terminator dalam sebuah statement. Sedangkan kurung kurawal itu digunakan untuk menulis isi didalam fungsi.

Seperti yang sudah dibahas sebelumnya bahwa dalam elemen syntax ada yang disebut dengan identifier, dalam bahasa C indentifier ada 3:

  1. Variabel
  2. Fungsi
  3. Class

Yang dimana penamaan identifier ini haris diawali dengan huruf atau underscore diikuti dengan huruf lain atau angka dan tidak boleh menggunakan symbol seperti @, $, dan %.

Dalam bahasa pemrograman ada yang disebut dengan whitespace yang artinya adalah sebuah baris kosong. Ketika kita menggunakan whitespace didalam bahasa C, compiler C akan mengabaikan setiap baris yang kosong (whitespace). Jadi apasih kegunaan whitespace ini? Whitespace ini digunakan untuk kemudahan para programmer untuk membaca program.

 

Semantics

Semantic adalah cabang linguistik yang meneliti arti atau makna. Makna yang diteliti oleh semantic itu adalah makna bebas konteks, yang bersifat leksikal dan juga gramatikal.

Jenis-jenis semantic ada banyak:

  1. Semantic Behavioris
  2. Semantic Dekriptif
  3. Semantic Generatif
  4. Semantic Gramatikal
  5. Semantic Leksikal
  6. Semantic Historis
  7. Semantic Logika
  8. Semantic Struktural

Semantic memiliki beberapa ciri khusus, seperti:

  1. Semantic adalah kajian mengenai hubungan antara tanda dengan objek yang diacu oleh tanda tersebut
  2. Semantic adalah kajian mengenai maksa sebuah statement

 

Contoh Semantic

Multiple Meanings (Bermakna Banyak)

Salah satu baguan dari belajar bahasa adalah mengetahui banyak makna kata-kata. Berikut adalah beberapa contoh kata dengan lebih dari satu arti:

  • A water pill, at first glance could be a pill with water in it, but it is understood to be a diuretic that causes a  person to lose water from his body.
  • Crash, can mean auto accident, a drop in the Stock Market, to attend a party without being invited, ocean waves hitting the shore or the sound of a cymbals being struck together

Words Without Meanings (Kata Tanpa Makna)

Contohnya:

  • Cleans like a white tornado
  • Do you have tired blood?

 

Semantics dalam C

Input

#include <stdio.h>int main ()

{

int num1 , num2 , result;

printf(“Enter First Number :”);

scanf(“%d”, &num1); fflush(stdin);

printf(“\nEnter Second Number : ”);

scanf(”%d”, &num2); fflush(stdin);

 

result=num1+num2;

printf(“\nAddition is : “, result);

return 0;

}

 

Output

 

Enter First Number : 3Enter Second Number : 4

Addition is : 7

 

Error Semantic dalam C

Input

#include <stdio.h>int main ()

{

int a;

printf(“Masukan Jumlah * : “);

scanf(”%d”, &a); fflush(stdin);

for(int i=1 ; i<=10 ; i–)

{

printf(“*”);

}

return 0;

}

 

Output

************************************************** x Infinite

Charity Run

Charity Run merupakan acara lari kedua yang pernah saya ikuti. Acara ini dilaksanakan pada 30 Oktober 2016 pukul 06.00 WIB di Alam Sutera. Acara ini diadakan oleh HIMSTAT BINUS-HIMATIKA UIA.

Sesampainya di sana, ternyata saya dan teman-teman saya telat, kami telah melewatkan acara pembukaan, sehingga kami semua langsung diberi arahan dari panitia untuk segera mulai lari mengikuti rute yang telah ditentukan, dan kami mendapati beberapa spot yang terdapat 1 – 2 orang panitia tengah menembakan smoke bomb.

Pada rute yang telah disediakan, terdapat 2 putaran yang dimana ketika runner sudah menyelesaikan 1 putaran, akan mendapatkan pita berwarna ungu yang setelah itu dapat kita tukarkan dengan minuman 1 botol aqua dan 1 botol you c 1000 rasa lemon atau orange setelah menyelesaikan 2 putaran. Selain itu, jika sudah menyelesaikan 2 putaran, runner juga akan mendapatkan medali yang menandakan sebagai finisher.

Acara Charity Run ini sangat bermanfaat karena selain kita bisa menyehatkan tubuh kita dengan berolahraga lari dan bersenang-senang dengan teman, kita juga membantu para penderita kanker yang membutuhkan pertolongan kita semua.

 

TARGET

Target atau sasaran saya dalam mengikuti acara Charity Run ini adalah teman-teman dari penderita kanker yang disupport oleh Bracelet of HOPE, yang dimana dengan dana yang terkumpul, akan diberikan kepada anak-anak penderita kanker di Indonesia untuk membantu mereka. Untuk itu, diperlukan adanya kegiatan-kegiatan sosial seperti ini, untuk menyadarkan orang-orang akan pentingnya olahraga dan pola hidup sehat.

 

Pentingnya mengikuti acara ini

Acara sosial seperti Charity Run ini sangatlah penting untuk diikuti karena acara ini bermanfaat tidak hanya untuk kita, tetapi juga bagi orang lain. Kita dapat menyehatkan tubuh kita dan menumbuhkan rasa kebersamaan dengan teman saat berlari, dan secara tidak langsung juga membantu teman-teman penderita kanker yang sangat membutuhkan bantuan dari kita semua.

S__3792921
kiri ke kanan: Audi (saya), Carin, Nathasya, Marjes, Melisa, Emi

charity run_2092
atas kiri ke kanan: Felix, Bento
tengah kiri ke kanan: Marjes, Edo, Sandy, Varell, Hans
bawah kiri ke kanan: Carin, Emi, Nathasya, Audi (saya), Melisa, Richard

charity run_9191
kiri ke kanan: Bento, Hans, Sandy, Richard, Felix, Edo, Varell, Emi, Carin, Audi (saya), Marjes, Nathasya, Melisa

98474
kiri ke kanan: Nathasya, Emi, Audi (saya), Carin, Marjes, Melisa.

TFI

HTTP

HTTP merupakan sebuah acara yang diadakan HIMTI (Himpunan Teknik Informatika) sebagai acara TKH (Temu Keakraban Himpunan). Tamu utama dari HTTP adalah mahasiswa baru binus. HTTP diadakan di gedung BPPT II.

HTTP yang dikhususkan untuk mahasiswa/i SoCS (School of Computer Science) binusian 2020 diadakan pada hari Sabtu tanggal 20 September 2016 pukul 09.00 WIB. Disana kami semua mahasiswa SoCS binus 2020 dipertemukan agar dapat lebih mengenal satu sama lain. Banyak acara yang disediakan di sana, beberapa diantaranya adalah talkshow, visualisasi, dance dan performance dari band, penyanyi solo, rap, dan tidak ketinggalan juga DJ performance. Saat acara HTTP juga diadakan games dan doorprize.

Seluruh acara HTTP dipanitiai oleh para aktivis HIMTI. Dengan mengikuti HTTP, kami para mahasiswa baru SoCS binus 2020 mendapatkan HIMTI kit berupa goodie bagt-shirte-certificate, dan voucher dari sponsor HTTP.