Model Komputasi
Ada tiga model dasar komputasional-- fungsional, logika, dan imperatif. Sebagai tambahan terhadap satuan nilai-nilai dan operasi yang berhubungan, masing-masing model komputasional mempunyai satu set operasi yang digunakan untuk menggambarkan komputasi.
a. Model Fungsional : terdiri dari satu set nilai-nilai, fungsi-fungsi dan operasi aplikasi fungsi dan komposisi fungsi. Fungsi dapat mengambil fungsi lain sebagai argumentasi dan mengembalikan fungsi sebagai hasil (higher-order function). Suatu program adalah koleksi definisi fungsi-fungsi dan suatu komputasi adalah aplikasi fungsi.
b. Model Logika : terdiri dari satu set nilai-nilai, definisi hubungan dan kesimpulan logis. Program terdiri dari definisi hubungan dan suatu komputasi adalah suatu bukti(suatu urutan kesimpulan).
c. Model Imperatif : terdiri dari satu set nilai-nilai yang mencakup suatu keadaan dan operasi tugas untuk memodifikasi pernyataan. Pernyataan adalah set pasangan nilai-nama dari konstanta dan variabel. Program terdiri dari urutan tugas dan suatu komputasi terdiri dari urutan pernyataan.
Teori Bahasa dan Otomata
Bahasa adalah struktur yang dikendalikan sekumpulan aturan tertentu, semacam mesin untuk memproduksi makna. Akan tetapi seperti setiap mesin hanya terdapat kemungkinan terbatas bagi setiap orang dalam menggunakannya.
Dalam bahasa disediakan pembendaharaan kata atau tanda (vocabulary), serta perangkat aturan bahasa (grammar, sintaks) yang harus dipatuhi jika hendak menghasilkan sebuah ekspresi yang bermakna.
Proses Kemampuan Pemahaman Bahasa
Hipotesis Noam Chomsky menggugat postulat John Locke (tokoh empirisme) yang menyatakan segala pengetahuan yang dimiliki manusia berasal dari rangsangan-rangsangan luar (pengalaman) yang ditangkap oleh indera-indera manusia, sehingga meniadakan pengetahuan apriori (pengetahuan yang langsung tertanam di manusia)
Noam Chomsky menyandarkan pada pemahaman bahasa sebagai sesuatu yang bersifat khas dan bawaan (tertanam) pada manusia sejak lahir.
Secara khusus Chomsky dipengaruhi Descartes tentang bahasa dan pikiran yang terikat begitu erat sehingga pengetahuan tentang bahasa bisa membuka pengetahuan tentang pikiran manusia.
Secara mendasar bahasa adalah bagian psikologi manusia yang dipahami sebagai teori tentang kemampuan pikiran manusia berupa ungkapan dari subjek psikologi.
Chomsky dan para ahli bahasa telah mengamati anak kecil mampu menjadi lancar berbahasa lebih cepat dan mudah dibanding "algoritma belajar berbahasa".
Sehingga para ahli bahasa membuat hipotesis otak berisi/memuat suatu "mesin bahasa umum". Kemudian selama masa awal pertumbuhan anak, terjadi pertemuan dengan bahasa sehari-hari yang mengubah mesin bahasa umum menjadi mesin bahasa partikular (tertentu) ke bahasa spesifik.
Teori Bahasa
Teori Bahasa adalah konsep-konsep pada "string alpabet V" dalam penyambungan karakter-karakter alpabet untuk membentuk suatu makna (bahasa).
- Alpabet
Adalah himpunan simbol (karakter) tak kosong yang berhingga. Alpabet digunakan untuk membentuk kata-kata (string-string) di bahasa. Bahasa dimulai dengan alpabet. Pada beberapa buku, alpabet dilambangkan dengan Σ
Istilah huruf, karakter dan simbol adalah sinonim menunjukkan elemen alpabet. Jika simbol berbaris bersebelahan, maka diperoleh "string simbol". Istilah kalimat, kata dan string adalah sinonim
Contoh :
{a,b} -> Himpunan yang terdiri dari simbol "a" dan "b".
- Penyambungan (Concatenation - o)
Penyambungan dilakukan pada 2 karakter atau lebih membentuk 1 barisan karakter (string simbol).
Contoh :
'a' o 'b' = 'ab'
'ab' o 'baab' = 'abbaab'
- String pada alpabet V
Karakter atau barisan karakter pada alpabet V dibentuk dari penyambungan karakter pada alpabet V.
String pada alpabet V adalah deretan (sekeun) simbol dari V dimana perulangan simbol diijinkan.
Contoh :
V = {a,b,c,d}
String pada alpabet V antara lain -> 'a','abcd','bbba'
Pemangkatan
Penyambungan dapat dianggap sebagai perkalian karena biasanya penulisannya adalah bila x dan y string, maka x o y adalah xy. sehingga pemangkatan dapat digunakan
VoV = VV = V2 ----> Panjang string = 2
VoVoV = V2oV=V3 -> Panjang string = 3
VoVoVoV = N4 ----> Panjang string = 4
VoVoVo...oV=Vn ---> Panjang string = n
Vk = VoVoVo...oV
adalah himpunan string dengan panjang k, masing-masing simbol adalah alpabet V
V* = {ε} U V+ (Kleene closure)
adalah string pada V, termasuk string kosong dimana ε string kosong (string tanpa simbol)
ε mempunyai sifat identitas, yaitu:
ε o x = x
x o ε = x
V+ = V1 U V2 U V3 U ... (Positive closure)
adalah himpunan string pada V, tidak ada string kosong didalamnya.
V0 = {ε}
adalah himpunan yang isinya hanya string kosong, dimana String kosong ε tidak sama dengan himpunan kosong �
Maka 'bbba' dapat ditulis 'b3a'
Panjang String
Panjang string dilambangkan |w| dimana panjang string adalah jumlah simbol di dalam string bukan pada alpabet dan pengulangan kemunculan simbol dihitung.
Contoh:
|ε| = 0
|a| = 1
|aa| = 2
|aaa| = 3
|aaab| = 4
Otomata
Otomata adalah mesin abstrak yang menggunakan model matematika, tetapi matematika yang digunakan benar-benar berbeda dibanding matematika klasik dan kalkulus. Model yang digunakan adalah model mesin state (state machine model) atau model trnasisi state (state transition model).
Terdapat 3 model komputasi pada teori otomata.
- Finite automata
- Pushdown automata
- Turing Mavhine
Memori Otomata
Otomata dibedakan berdasarkan jenis memori sementara yang dimilikinya, yaitu:
- Finite automata (FA)
Tidak memiliki memori sementara. Finite automata adalah kelas mesin dengan kemampuan-kemampuan paling terbatas.
- Pushdown automata (PDA)
Memiliki memori sementara dengan mekanisme LIFO (Last In, First Out). Mesin ini lebih ampuh karena bantuan keberadaan stack yang dipandang sebagai unit memori
- Turing Machine (TM)
Memiliki memori dengan mekanisme pengaksesan acak (Random akses memori). Turing Machine merupakan model matematika untuk komputer saat ini.
Sejarah Otomata dan Teori Bahasa
Otomata bermula sebelum komputer ada pada teori di bidang sistem logika matematika atau formal, ilmuwan David Hilbert telah mencoba menciptakan algoritma umum untuk pembuktian (seluruh) persoalan matematika secara otomatis yaitu mampu menentukan salah benarnya sembarang prosisi matematika.
Tahun 1931, Kurt G�del mempublikasikan teori ketidaklengkapan dimana membuktikan prosedur/algoritma yang dikehendaki David Hilbert tersebut tidak akan pernah ada.
G�del membangun rumus di kalkulus predikat yang diterapkan pada bilangan bulat yang memiliki pernyataan-pernyataan definisi yang tidak dapat dibuktikan maupun dibantah di dalam sistem logika yang mungkin dibangun manusia.
Formalisasi argumen teorema ketidaklengkapan G�del ini berikut penjelasan dan formalisasi selanjutnya dari prosedur efektif secara intuisi merupakan salah satu pencapaian intelektual terbesar abad 20, yaitu abad dimana formalisasi berkembang semarak.
Pengembangan teori otomata, komputasi dan teori bahasa berikutnya difasilitasi perkembangan bidang psyco-linguistic. Bidang psyco-linguistic berupaya menjawab pertanyan-pertanyan berikut:
- Apakah bahasa secara umum?
- Bagaimana manusia mengembangkan bahasa?
- Bagaimana manusia memahami bahasa?
- Bagaimana manusia mengajarkan bahasa ke anak-anaknya?
- Apa gagasan-gagasan yang dapat dinyatakan dan bagaimana caranya?
- Bagaimana manusia membangun kalimat-kalimat dari gagasan-gagasan yang berada di pikirannya?
Sekitar tahun 1950-an, Noam Chomsky menciptakan model matematika sebagai sarana untuk mendeskripsikan bahasa serta menjawab pertanyaan-pertanyaan di atas. Saat ini dimulai pendalaman bidang bahasa komputer.
Perbedaan antara bahasa komputer dan bahasa manusia adalah sampai sekarang belum diketahuinya bagaimana cara manusia mengartikan bahasa, sementara dengan pasti dapat mengartikan bahasa pada komputer.
Noam Chomsky mengemukakan perangkat format disebut grammar untuk memodelkan properti-properti bahasa.
Grammar berisi sejumlah aturan serta menspesifikasikan bahasa tertentu.
Bahasa berisi semua string yang dapat dihasilkan menggunakan aturan-aturan grammar.
Meski pembahasan Chomsky terutama ditujukan untuk bahasa alami, grammar mempunyai nilai/manfaat sangat besar di ilmu informatika/komputer karena pencapaian ini digunakan untuk mendeskripsikan dan mendefinisikan sintaks bahasa pemrograman dan bahasa-bahasa formal lainnya.
Grammar diterapkan pada perancangan kompilator dan bidang-bidang di ilmu komputer.
McCulloch dan Pitts mengemukakan Mesin Abstrak sederhana yaitu finite automata untuk memodelkan neuron nets.
Finite automata juga digunakan untuk merancang switching circuit. Studi mengenai teori otomata terkait bidang-bidang lain di ilmu komputer.
Kemudian ekivalensi antara finite automata dan ekspresi reguler (reguler expression) dikemukakan Stephen Kleene. Sejak saat itu teori bahasa dikaitkan secara erat dengan teori bahasa formal. ubungan teori otomata dan teori pengkodean (coding theory) juga banyak diteliti.
Turing machine seperti komputer modern saat ini dapat mengolah (simbol-simbol di tape) dan mengahasilkan keluaran (simbol-simbol yang berada di tapenya setelah berakhirnya sebarisan pergerakkan) merupakan karya teoritis dari Alan Turing.
Karena banyak yang berperan pada pengembangannya, bidang teori ini diberi aneka ragam nama yaitu:
- teori otomata (theory of automata)
- teori bahasa formal (theory of formal language)
- teori mesin turing (theory of Turing machine)
Bahasa adalah struktur yang dikendalikan sekumpulan aturan tertentu, semacam mesin untuk memproduksi makna. Akan tetapi seperti setiap mesin hanya terdapat kemungkinan terbatas bagi setiap orang dalam menggunakannya.
Dalam bahasa disediakan pembendaharaan kata atau tanda (vocabulary), serta perangkat aturan bahasa (grammar, sintaks) yang harus dipatuhi jika hendak menghasilkan sebuah ekspresi yang bermakna.
Proses Kemampuan Pemahaman Bahasa
Hipotesis Noam Chomsky menggugat postulat John Locke (tokoh empirisme) yang menyatakan segala pengetahuan yang dimiliki manusia berasal dari rangsangan-rangsangan luar (pengalaman) yang ditangkap oleh indera-indera manusia, sehingga meniadakan pengetahuan apriori (pengetahuan yang langsung tertanam di manusia)
Noam Chomsky menyandarkan pada pemahaman bahasa sebagai sesuatu yang bersifat khas dan bawaan (tertanam) pada manusia sejak lahir.
Secara khusus Chomsky dipengaruhi Descartes tentang bahasa dan pikiran yang terikat begitu erat sehingga pengetahuan tentang bahasa bisa membuka pengetahuan tentang pikiran manusia.
Secara mendasar bahasa adalah bagian psikologi manusia yang dipahami sebagai teori tentang kemampuan pikiran manusia berupa ungkapan dari subjek psikologi.
Chomsky dan para ahli bahasa telah mengamati anak kecil mampu menjadi lancar berbahasa lebih cepat dan mudah dibanding "algoritma belajar berbahasa".
Sehingga para ahli bahasa membuat hipotesis otak berisi/memuat suatu "mesin bahasa umum". Kemudian selama masa awal pertumbuhan anak, terjadi pertemuan dengan bahasa sehari-hari yang mengubah mesin bahasa umum menjadi mesin bahasa partikular (tertentu) ke bahasa spesifik.
Teori Bahasa
Teori Bahasa adalah konsep-konsep pada "string alpabet V" dalam penyambungan karakter-karakter alpabet untuk membentuk suatu makna (bahasa).
- Alpabet
Adalah himpunan simbol (karakter) tak kosong yang berhingga. Alpabet digunakan untuk membentuk kata-kata (string-string) di bahasa. Bahasa dimulai dengan alpabet. Pada beberapa buku, alpabet dilambangkan dengan Σ
Istilah huruf, karakter dan simbol adalah sinonim menunjukkan elemen alpabet. Jika simbol berbaris bersebelahan, maka diperoleh "string simbol". Istilah kalimat, kata dan string adalah sinonim
Contoh :
{a,b} -> Himpunan yang terdiri dari simbol "a" dan "b".
- Penyambungan (Concatenation - o)
Penyambungan dilakukan pada 2 karakter atau lebih membentuk 1 barisan karakter (string simbol).
Contoh :
'a' o 'b' = 'ab'
'ab' o 'baab' = 'abbaab'
- String pada alpabet V
Karakter atau barisan karakter pada alpabet V dibentuk dari penyambungan karakter pada alpabet V.
String pada alpabet V adalah deretan (sekeun) simbol dari V dimana perulangan simbol diijinkan.
Contoh :
V = {a,b,c,d}
String pada alpabet V antara lain -> 'a','abcd','bbba'
Pemangkatan
Penyambungan dapat dianggap sebagai perkalian karena biasanya penulisannya adalah bila x dan y string, maka x o y adalah xy. sehingga pemangkatan dapat digunakan
VoV = VV = V2 ----> Panjang string = 2
VoVoV = V2oV=V3 -> Panjang string = 3
VoVoVoV = N4 ----> Panjang string = 4
VoVoVo...oV=Vn ---> Panjang string = n
Vk = VoVoVo...oV
adalah himpunan string dengan panjang k, masing-masing simbol adalah alpabet V
V* = {ε} U V+ (Kleene closure)
adalah string pada V, termasuk string kosong dimana ε string kosong (string tanpa simbol)
ε mempunyai sifat identitas, yaitu:
ε o x = x
x o ε = x
V+ = V1 U V2 U V3 U ... (Positive closure)
adalah himpunan string pada V, tidak ada string kosong didalamnya.
V0 = {ε}
adalah himpunan yang isinya hanya string kosong, dimana String kosong ε tidak sama dengan himpunan kosong �
Maka 'bbba' dapat ditulis 'b3a'
Panjang String
Panjang string dilambangkan |w| dimana panjang string adalah jumlah simbol di dalam string bukan pada alpabet dan pengulangan kemunculan simbol dihitung.
Contoh:
|ε| = 0
|a| = 1
|aa| = 2
|aaa| = 3
|aaab| = 4
Otomata
Otomata adalah mesin abstrak yang menggunakan model matematika, tetapi matematika yang digunakan benar-benar berbeda dibanding matematika klasik dan kalkulus. Model yang digunakan adalah model mesin state (state machine model) atau model trnasisi state (state transition model).
Terdapat 3 model komputasi pada teori otomata.
- Finite automata
- Pushdown automata
- Turing Mavhine
Memori Otomata
Otomata dibedakan berdasarkan jenis memori sementara yang dimilikinya, yaitu:
- Finite automata (FA)
Tidak memiliki memori sementara. Finite automata adalah kelas mesin dengan kemampuan-kemampuan paling terbatas.
- Pushdown automata (PDA)
Memiliki memori sementara dengan mekanisme LIFO (Last In, First Out). Mesin ini lebih ampuh karena bantuan keberadaan stack yang dipandang sebagai unit memori
- Turing Machine (TM)
Memiliki memori dengan mekanisme pengaksesan acak (Random akses memori). Turing Machine merupakan model matematika untuk komputer saat ini.
Sejarah Otomata dan Teori Bahasa
Otomata bermula sebelum komputer ada pada teori di bidang sistem logika matematika atau formal, ilmuwan David Hilbert telah mencoba menciptakan algoritma umum untuk pembuktian (seluruh) persoalan matematika secara otomatis yaitu mampu menentukan salah benarnya sembarang prosisi matematika.
Tahun 1931, Kurt G�del mempublikasikan teori ketidaklengkapan dimana membuktikan prosedur/algoritma yang dikehendaki David Hilbert tersebut tidak akan pernah ada.
G�del membangun rumus di kalkulus predikat yang diterapkan pada bilangan bulat yang memiliki pernyataan-pernyataan definisi yang tidak dapat dibuktikan maupun dibantah di dalam sistem logika yang mungkin dibangun manusia.
Formalisasi argumen teorema ketidaklengkapan G�del ini berikut penjelasan dan formalisasi selanjutnya dari prosedur efektif secara intuisi merupakan salah satu pencapaian intelektual terbesar abad 20, yaitu abad dimana formalisasi berkembang semarak.
Pengembangan teori otomata, komputasi dan teori bahasa berikutnya difasilitasi perkembangan bidang psyco-linguistic. Bidang psyco-linguistic berupaya menjawab pertanyan-pertanyan berikut:
- Apakah bahasa secara umum?
- Bagaimana manusia mengembangkan bahasa?
- Bagaimana manusia memahami bahasa?
- Bagaimana manusia mengajarkan bahasa ke anak-anaknya?
- Apa gagasan-gagasan yang dapat dinyatakan dan bagaimana caranya?
- Bagaimana manusia membangun kalimat-kalimat dari gagasan-gagasan yang berada di pikirannya?
Sekitar tahun 1950-an, Noam Chomsky menciptakan model matematika sebagai sarana untuk mendeskripsikan bahasa serta menjawab pertanyaan-pertanyaan di atas. Saat ini dimulai pendalaman bidang bahasa komputer.
Perbedaan antara bahasa komputer dan bahasa manusia adalah sampai sekarang belum diketahuinya bagaimana cara manusia mengartikan bahasa, sementara dengan pasti dapat mengartikan bahasa pada komputer.
Noam Chomsky mengemukakan perangkat format disebut grammar untuk memodelkan properti-properti bahasa.
Grammar berisi sejumlah aturan serta menspesifikasikan bahasa tertentu.
Bahasa berisi semua string yang dapat dihasilkan menggunakan aturan-aturan grammar.
Meski pembahasan Chomsky terutama ditujukan untuk bahasa alami, grammar mempunyai nilai/manfaat sangat besar di ilmu informatika/komputer karena pencapaian ini digunakan untuk mendeskripsikan dan mendefinisikan sintaks bahasa pemrograman dan bahasa-bahasa formal lainnya.
Grammar diterapkan pada perancangan kompilator dan bidang-bidang di ilmu komputer.
McCulloch dan Pitts mengemukakan Mesin Abstrak sederhana yaitu finite automata untuk memodelkan neuron nets.
Finite automata juga digunakan untuk merancang switching circuit. Studi mengenai teori otomata terkait bidang-bidang lain di ilmu komputer.
Kemudian ekivalensi antara finite automata dan ekspresi reguler (reguler expression) dikemukakan Stephen Kleene. Sejak saat itu teori bahasa dikaitkan secara erat dengan teori bahasa formal. ubungan teori otomata dan teori pengkodean (coding theory) juga banyak diteliti.
Turing machine seperti komputer modern saat ini dapat mengolah (simbol-simbol di tape) dan mengahasilkan keluaran (simbol-simbol yang berada di tapenya setelah berakhirnya sebarisan pergerakkan) merupakan karya teoritis dari Alan Turing.
Karena banyak yang berperan pada pengembangannya, bidang teori ini diberi aneka ragam nama yaitu:
- teori otomata (theory of automata)
- teori bahasa formal (theory of formal language)
- teori mesin turing (theory of Turing machine)
Tipe Data Numerik (part 2)
Setelah membahas macam-macam tipe data numerik pada tulisan sebelumnya, maka kita akan melanjutkan pada bagaimana melakukann konversi dari bermacam-macam tipe tersebut. Konversi ini bertujuan untuk mendapatkan tipe data yang sesuai, biasanya kaitannya dengan operasi numerik dari tipe data. Misalnya kita ingin mendapatkan tipe data float dengan tujuan ketelitian, sedangkan data tersedia adalah bertipe integer. Maka kita harus mengkonversikan terlebih dahulu data tersebut kedalam float. Didalam Python sudah tersedia beberapa fungsi untuk melakukan konversi tipe data numerik.int()
Fungsi ini untuk mengubah kedalam tipe data integer. Bentuknya adalah int(data). Misalnya kita mempunyai data bertipe float yaitu 1.2, dan kita mau mengubah kedalam integer. Contoh:
>>> a = 1.2
>>> int(a)
1
Fungsi ini sebetulnya bisa untuk mendapatkan pembulatan kebawah dari suatu tipe data, dengan catatan bahwa hasil pembulatan tersebut adalah integer. Contoh:
>>> b = 1.8
>>> int(b)
1
long()
Fungsi ini untuk mengubah kedalam tipe data long. Tipe data long mempunyai jangkauan data yang lebih baik daripada integer. Bentuknya adalah long(data). Contoh:
>>> a = 2
>>> long(a)
2L
float()
Fungsi ini untuk mengubah data kedalam tipe data float. Bentuknya adalah float(). Contoh:
>>> a = 2
>>> float(a)
2.0
complex()
Fungsi ini untuk mengubah data kedalam tipe data complex. Bentuknya adalah complex(data_real[, data_imajiner]). Contoh:
>>> a = 4
>>> complex(a)
(4+0j)
Contoh diatas digunakan untuk mengubah data kedalam tipe complex tanpa menyertakan argumen untuk bilangan imajinernya. Kita bisa juga menyertakan argumen bilangan imajinernya. Contoh:
>>> complex(4, 0)
(4+0j)
Tags: game, numeric, program, programming, python, source code, type data
Operasi Pada Tipe Data Point
Setelah sebelumnya dibahas tentang tipe data pointer, maka selanjutnya akan dibahas mengenai operasi pada tipe data pointer. Secara umum ada 2 operasi yang dapat dilakukan dengan tipe data pointer, yaitu :
- Copy pointer, sehingga sebuah simpul akan ditunjuk oleh lebih dari sebuah pointer
- Copy isi dari simpul, sehingga dua atau lebih simpul yang ditunjuk oleh pointer yang berbeda mempunyai isi yang sama.
Sebelum dilakukan uji coba maka perlu diperhatikan terlebih dahulu yaitu syarat yang harus dipenuhi oleh kedua operasi tersebut adalah bahwa pointer-pointer yang akan dioperasikan harus mempunyai deklarasi yang sama.
- Jika dalam statemen pemberian tanda ^ tidak diberikan maka operasinya dinamakan sebagai mengkopi pointer, dengan konsekuensi simpul yang ditunjuk oleh suatu pointer akan bisa terlepas dan tidak dapat dimasup lagi.
Contoh :
P1 := P2 ;
- Jika tanda ^ diberikan maka operasinya dinamakan sebagai operasi mengkopi isi simpul pointer, dengan konsekuensi bahwa isi dua buah simpul atau lebih akan menjadi sama.
Contoh :
P1^ := P2^ ;
Menghapus Pointer
Statement yang digunakan untuk menghapus pointer adalah Dispose, yang mempunyai bentuk umum :
Dispose(variabel) ;
Dimana variabel = sebarang variabel yang bertipe pointer.
Selanjutnya setelah suatu pointer dihapus maka lokasi yang semula ditempati oleh simpul yang ditujuk oleh pointer tersebut akan bebas, sehingga bisa digunakan oleh variabel yang lain.
Semoga bermanfaat.
Related posts:- Mengenal Tipe Data Pointer dalam Pascal
- Tipe Data dan Variabel
- Fungsi Kendali Alur ( Control Flow Function )
- Membangun Relasi Tabel di PhpMyAdmin
- Stored Procedure Vs Stored Function
This entry was posted in Bahasa Pemrograman, Pascal and tagged ada, adalah, akan, artikel operasi operasi, artikel tentang pointer, artikel tentang tipe data, artikel-artikel tipe data, atau, Auto, bahwa, bebas, Bentuk, berbeda, bermanfaat, bertipe, bisa, buah, coba, contoh, contoh pointer pascal, contoh query stored procedure phpmyadmin, Copy, copy pointer pada pascal, dahulu, dalam, Dan, dapat, dari, Data, definisi operasi pada pascal, Deklarasi, dengan, diberikan, digunakan, dilakukan, dimana, dimasup, dinamakan, dioperasikan, dipenuhi, diperhatikan, dispos pada pascal digunakan untuk, Dispose, dispose pada pascal, ditempati, ditujuk, ditunjuk, Draft, dua, isi, istilah operasi @ pada pointer, jika, kedua, kegunaan tipe data pointer, konsekuensi, lagi, lain, lebih, lokasi, maka, makalah tentang pointer di pascal, makalah tentang tipe data, makalah tipe data, makalah tipe data terstruktur, mempunyai, mengenai, Menghapus, Menghapus data pada pointer, mengkopi, menjadi, nbsp, oleh, Operasi, operasi copy simpul, operasi mengcopy pointer dan isi simpul, operasi mengcopy pointer dan operasi mengcopy isi simpul, operasi operasi pada pointer, operasi pada pascal, operasi pada pointer, operasi pada pointer data, Operasi pada tipe data pointer, operasi pointer, operasi pointer data, operasi pointer pada pascal, operasinya, p1 p2, pada, pemberian, pengertian, pengertian copy pointer, pengertian dispose pada pascal, pengertian pointer dalam pascal, pengertian tanda operasi, pengertian tipe data secara umum, penjelasan mengenai tipe data sederhana, perlu, pointer, pointer statement, sama, sebagai, sebarang, sebelum, sebelumnya, sebuah, secara, sehingga, selanjutnya, semoga, semula, setelah, Simpul, soal-soal snmptn 2011, soal-soal ujian snmptn 2011, Statemen, Statement, suatu, syarat, tanda, tentang, terlebih, tersebut, Tidak, tipe, Tipe Data, tipe data array adalah, tipe data pada phpmyadmin, tipe data pointer, tipe operasi, tips snmptn, Uji, ujian snmptn 2011, umum, untuk, Variabel, warung ilmu, yaitu, yang. Bookmark the permalink.
Mengenal Tipe Data Pointer dalam Pascal
Pemakaian array tidak selalu tepat untuk program-program terapan yang kebutuhan pengingatnya selalu bertambah selama eksekusi program tersebut. Untuk itu diperlukan satu tipe data yang dapat digunakan untuk menyimpan/mengalokasikan (membentuk) dan mendealokasikan (menghapus) pengingat secara dinamis, yaitu sesuai dengan kebutuhan pada saat suatu program dieksekusi. Pascal telah menyediakan tipe data yang bertipe seperti itu yaitu yang disebut dengan tipe data POINTER.
Nama variabel yang digunakan untuk mewakili suatu nilai data sebenarnya menunjukkan suatu lokasi tertentu dalam pengingat di komputer di mana data yang diwakili oleh tipe data tersebut disimpan. Pada saat sebuah program dikompilasi maka compiler akan melihat pada bagian deklarasi variabel (Var) untuk mengetahui nama-nama variabel apa saja yang digunakan, sekaligus mengalokasikan atau menyediakan tempat dalam memory untuk menyimpan nilai data tersebut. Dari sini dapat dilihat bahwa sebelum program dieksekusi, maka lokasi-lokasi data dalam memory sudah ditentukan dan tidak dapat diubah selama program tersebut dieksekusi. Variabel-variabel yang demikian itu dinamakan sebagai Variabel Statis (Static Variable).
Dari pengertian diatas bahwa sesudah suatu lokasi pengingat ditentukan untuk suatu nama variabel maka dalam program tersebut variabel yang dimaksud akan tetap menempati lokasi yang telah ditentukan dan tidak mungkin diubah. Berdasarkan pada sifat-sifat variabel statis maka bisa dikatakan bahwa banyaknya data yang bisa diolah sangat terbatas.
Misalnya variabel dalam bentuk Array yang dideklarasika sbb :
Var matriks: array[1..100,1..100] of integer;
maka variabel tersebut hanya mampu menyimpan data sebanyak 100×100=10000 buah data. Jika dipaksakan memasukkan data pada variabel tersebut setelah semua ruangnya penuh maka eksekusi program akan terhenti dan error. Memang dapat mengubah deklarasi program diatas dengan memperbesar ukurannya. Tetapi jika setiap kali harus mengubah deklarasi dari tipe daa tersebut sementara, banyaknya data tidak dapat ditentukan lebih dahulu, maka hal ini tentu merupakan pekerjaan yang membosankan. Sekarang bagaimana jika diingin mengolah data yang banyaknya data tidak pasti dalam hal jumlah ? dan program tidak boleh di bongkar pasang atau harus sekali jadi ?
Penggunaan variable dinamis lah jawabnya. Variabel dinamis adalah variabel yang dialokasikan hanya pada saat diperlukan, yaitu setelah program dieksekusi. Dengan kata lain, pada saat program dikompilasi, lokasi untuk variabel belum ditentukan sebagai variabel dinamis. Hal ini membawa keuntungan pula, bahwa variabel-variabel dinamis tersebut dapat dihapus pada saat program dieksekusi sehingga ukuran memory selalu berubah. Hal inilah yang menyebabkan variabel tersebut dinamakan sebagai variabel dinamis.
Pada variabel dinamis nilai variabel adalah alamat lokasi lain yang menyimpan data sesungguhnya. Dengan demikian data yang sesungguhnya tidak dapat dimasup secara langsung. Oleh karena itu, variabel dinamis dikenal dengan sebutan POINTER yang artinya menunjuk ke sesuatu. Dalam variabel dinamis, nilai dari data yang ditunjuk oleh suatu pointer biasanya disebut Simpul / node.
Dekarasi Pointer dan Alokasi Tempat
Bentuk umum deklarasi pointer :
Type Pengenal = ^simpul ;
Simpul = tipe data ;
dengan pengenal : nama pengenal yang menyatakan tipe data pointer
simpul : nama simpul
tipe data : tipe data dari simpul
Tanda ^ di depan simpul harus ditulis apa adanya karena itu menunjukkan bahwa pengenal bertipe pointer. Tipe data dari simpul dapat berupa tipe data sebarang, misalnya char, integer, atau real.
Contoh :
Type Str30 = string[30] ;
Point = ^Data ;
Data = record
Nama_Peg : Str30 ;
Alamat : Str30 ;
End ;
Var
P1, P2 : Point ;
A, B : Str30 ;
Mengakses Data Dalam Tipe Data Pointer
Pada saat program dikompilasi maka P1 dan P2 akan menempati lokasi tertentu dalam memory. Kedua variabel ini masing-masing belum menunjuk ke suatu simpul atau nilainya dinyatakan dengan NIL. Oleh karena itu sebelum diakses varabel yang bertipe pointer harus dipersiapkan terlebih dahulu, yaitu dengan menggunakan perintah NEW.
Deklarasi : NEW(variabel bertipe pointer);
Contoh :
New(P1); New(P2);
Maka sekarang mempunyai dua buah simpul yang ditunjuk oleh P1 dan P2. Setelah itu dapat dilakukan pengaksesan data, yaitu dengan menuliskan :
P1^.Nama_Peg := ‘Budiman’;
P1^.Alamat := ‘Surabya’;
Jika statemen New(P1)diulang beberapa kali maka hanya simpul yang terakhir yang bisa dimasup. Hal ini terjadi karena setiap kali kita memberikan statemen New(P1) maka nilai P1 yang lama akan terhapus. Dengan terhapusnya nilai P1 maka secara otomatis simpul yang ditunjuk oleh P1 tidak ditunjuk lagi dan tidak ditunjuk pula oleh pointer yang lain sehingga karena alamatnya tidak dapat ditentukan maka simpul tersebut tidak dapat dimasup lagi.
Dari sini dapat dilihat bahwa sifat kedinamisan pointer agak tersamar, disebabkan apabila dikehendaki sejumlah simpul aktif dalam pengingat maka perlu disediakan sejumlah pointer yang sesuai untuk masing-masing simpul. Oleh karena itu, apabila hendak mempunyai sebuah variabel yang benar-benar dinamis maka variabel itu harus mampu memasup sejumlah lokasi tertentu.
Untuk itu akan diperkenalkan apa yang dinamakan sebagai Senarai Berantai (Linked List).
Related posts:- Bahasa Pemrograman Pascal (1)
- Tipe Data dan Variabel
- Deklarasi Variabel dalam Prosedur
- Mengenal Programan Java (1)
- Identifier Dalam Pascal (2)
This entry was posted in Bahasa Pemrograman, Pascal and tagged alamat, alamat pointer yang selalu berubah, alamatnya, apa saja, Array, arti pointer pada komputer, arti tipe data pointer, arti type data pointer, artikel tipe data dalam pacal, artikel tipe data di pascal, artikel tipe data terstruktur, artikel-artikel tipe data, Auto, Bagaimana, beberapa, berdasarkan, bertambah, bertipe, berubah, bisa, bongkar, Budiman, coding untuk menyatakan % dalam pascal, contoh makalah program link list dengan bahasa pascal, contoh penggunaan simpul tipe data record, contoh pointer dalam pascal, contoh pointer pascal, contoh progam senarai dalam pascal, contoh program aplikasi menggunakan pointer dengan pascal, contoh program link list pada pascal, contoh program linked list senarai berantai pascal, contoh program menggunakan pointer dalam pascal, contoh program menggunakan pointer dengan pascal, contoh program menggunakan type data pointer, contoh program pascal pointer memasukan data, contoh program pascal tipe pointer, contoh program penyimpanan data dalam pascal, contoh program pointer, contoh program pointer dalam pascal, contoh program pointer dengan pasacal, contoh program pointer pada pascal, contoh program pointer pascal, contoh program senarai berantai dalam bahasa pascal, contoh program tipe data pointer pada java, contoh tipe data dalam pascal, contoh tipe data record dalam pemrograman pascal, contoh-contoh identifier dalam pascal, daa, dahulu, Dan, dapat, definisi pointer dalam java, Deklarasi, deklarasi pointer java, deklarasi pointer pada pascal, Deklarasi Variabel, deklarasi variabel dalam pascal, demikian, dialokasikan, dideklarasika, diingin, dikompilasi, dimaksud, diolah, dipaksakan, dipersiapkan, diulang, diwakili, Draft, dua, eksekusi, hal, hanya, integer, itu, jika, jumlah, karena, kata, kedua, kegunaan tipe data pointer beserta contohnya., kegunaan tipe data pointer dan contoh program yang menggunakan tipe data pointer, kelebihan array dinamis pascal, kelebihan pointer dalam pascal, kelebihan pointer di pascal, kelebihan pointer dibanding pascal, keuntungan data pointer, kita, komputer, lagi, lah, lain, lama, langsung, link list pada pointer dengan pascal, link list program dalam pascal, linked list pointer pascal, list pada pascal, maka, makalah link list pascal, makalah tentang pointer di pascal, makalah tentang pointer pada pascal, makalah tentang tipe data, makalah tentang tipe data dalam pemograman, makalah tipe data, makalah tipe data terstruktur, makalh pointer, mampu, mana, manfaat pascal bagi komputer, melihat, memasukkan data dengan pointer di paskal, membawa, membentuk, memberikan, membosankan, Memory, memperbesar, mempunyai, mencari tipe data dalam pascal, mendealokasikan, menempati, mengakses tipe data array record, mengenal pointer dan variabel dinamis, Mengenal Tipe Data Pointer, Mengenal Tipe Data Pointer Pascal, menggunakan, menunjuk, menunjukkan, menyatakan, menyebabkan, menyediakan, menyimpan data file linked list pada pascal, menyimpan data for pascal, merupakan, mewakili, mungkin, nama nama, nama nama pointer, nama-nama yang sesuai untuk program ilmu, nilai, node, Pascal, pasti, pekerjaan, pemrograman pascal pointer, pendeklarasian variabel pointer pada suatu tipe data record dalam pascal, Pengenal, pengertian, pengertian dan conto program tipe data javascrip, pengertian khusus tipe data array, pengertian pointer, pengertian pointer dalam pascal, pengertian pointer dalam program pascal, pengertian pointer pada pascal, pengertian tipe data array, pengertian tipe data sederhana pemrograman record, pengertian type pada pascal, pengertian variabel dalam pascal, pengertian variabel pada java, pengertian.static.variable, penggunaan memori dalam tipedata pascal, penggunaan pointer pada pascal, penggunaan tentang pointer di pascal, pengingat, penjelasan list dengan pointer, penuh, point, pointer, pointer bertipe, pointer dalam bahasa pascal, pointer dalam pascal, pointer di pascal, pointer makalh, pointer new dalam pascal, pointer pada java, pointer pada pascal, pointer pascal, program link list dengan menggunakan pascal, program linked list pada pascal, program nama linklist pascal, program pascal senarai berantai, program pascal untuk menyimpan data, program pointer dalam bahasa pascal, record dalam pascal, ruangnya, saat, sangat, satu, sbb, sebagai, sebarang, secara, sekaligus, Sekarang, selalu, selama, semua, Senarai, Senarai Berantai, Seperti, sesuai, setelah, setiap, sifat variabel adalah, simpan data dalam pascal, Simpul, soal-soal snmptn 2011, soal-soal ujian snmptn 2011, Static, Statis, String, suatu, Surabya, tanda, terapan, terhenti, tersamar, tersebut, Tidak, Tipe Data, tipe data dalam pascal, tipe data dalam pascal dan contoh, tipe data java beserta kegunaannya dan memory, tipe data pada java beserta kegunaan dan memory nya, tipe data pointer, tipe data pointer dalam pascal, tipe data pointer dlm pascal, Tipe Data Pointer Pascal, tipe data ponter dan deklarasi pada pascal, tipe data program pascal, tipe data sederhana pointer, tipe data terstruktur pascal, tipe data umum yang digunakan pascal, tipe tipe data pascal, tips snmptn, type data pointer pada pacal, type data untuk menyimpan ebook, ujian snmptn 2011, umum, Variabel, variabel dinamis, variabel yang tidak dapat diubah, variabel yg dialokasikan hanya saat diperlukan, yaitu setelah program dieksekusi, warung ilmu, yang, yang dimaksud tipe data java, yg dimaksud variabel pada program. Bookmark the permalink.
Deskripsi Larik apa lagi ini... he pasti pada mikir gitu?. Larik sendiri adalah kumpulan dari nilai-nilai data bertipe sama dalam urutan tertentu yang menggunakan sebuah nama yang sama .
Elemen larik = Nilai-nilai data pada suatu larik
Index larik = Menunjukkan letak urutan dari suatu larik
Deklarasi Larik "array"
Ditulis diantara tanda “[ ]” dikuti dengan tipe data dari nama larik .
Nama_array [subscript]
Contoh = float nilai [10];
Nama array = nilai
Menyimpan 10 buah data bertipe float.
Penomoran array secara default dimulai dari subscript 0 , bukan 1.
Tipe data yang digunakan pada array
Dapat berupa tipe data dasar , tipe data terstruktur .
Pemberian Nilai Awal
contoh :
int angka [10]= {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
Pendefinisian array bertipe angka yang terdiri 12 elemen bertipe data int .
Atau
Elemen larik = Nilai-nilai data pada suatu larik
Index larik = Menunjukkan letak urutan dari suatu larik
Deklarasi Larik "array"
Ditulis diantara tanda “[ ]” dikuti dengan tipe data dari nama larik .
Nama_array [subscript]
Contoh = float nilai [10];
Nama array = nilai
Menyimpan 10 buah data bertipe float.
Penomoran array secara default dimulai dari subscript 0 , bukan 1.
Tipe data yang digunakan pada array
Dapat berupa tipe data dasar , tipe data terstruktur .
Pemberian Nilai Awal
contoh :
int angka [10]= {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
Pendefinisian array bertipe angka yang terdiri 12 elemen bertipe data int .
Atau
int angka [ ]= {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
Secara otomatis kompiler akan menghitungnya sendiri
CONTOH PROGRAM
CONTOH PROGRAM
#include <stdio.h> #incluade <conio.h> #include <math.h> void main() { int N,I; float angka [10],Rerata, Total=0; /*Masukkan Jumlah Data */ Printf ("Banyaknya Data (Maksimum 10 buah angka)?"); scanf ("%d", &N); printf ("\n"); /*Masukan Data dari ke 0 sampai dengan ke N-1*/ /* dan hitung nilai totalnya*/ for(I=0;I<N;I++) { printf ("Nilai Data ke %d?" , I+1); scanf ("%f", &angka[I]); Total = Total+angka[I]; } /*Hitung Nilai Rata-ratanya*/ for(I=0;I<N;I++) Rerata=Total/N; /* Tampilkan Hasilnya*/ printf("\nJumlah Data = %d\n" , N); printf("Total Nilai = %f\n" , Total); printf("Rata-rata Nilai = %f\n" , Rerata); //printf("Devisi Standar = %f", SD); getch(); |
Deskripsi Larik apa lagi ini... he pasti pada mikir gitu?. Larik sendiri adalah kumpulan dari nilai-nilai data bertipe sama dalam urutan tertentu yang menggunakan sebuah nama yang sama .
Elemen larik = Nilai-nilai data pada suatu larik
Index larik = Menunjukkan letak urutan dari suatu larik
Deklarasi Larik "array"
Ditulis diantara tanda “[ ]” dikuti dengan tipe data dari nama larik .
Nama_array [subscript]
Contoh = float nilai [10];
Nama array = nilai
Menyimpan 10 buah data bertipe float.
Penomoran array secara default dimulai dari subscript 0 , bukan 1.
Tipe data yang digunakan pada array
Dapat berupa tipe data dasar , tipe data terstruktur .
Pemberian Nilai Awal
contoh :
int angka [10]= {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
Pendefinisian array bertipe angka yang terdiri 12 elemen bertipe data int .
Atau
Elemen larik = Nilai-nilai data pada suatu larik
Index larik = Menunjukkan letak urutan dari suatu larik
Deklarasi Larik "array"
Ditulis diantara tanda “[ ]” dikuti dengan tipe data dari nama larik .
Nama_array [subscript]
Contoh = float nilai [10];
Nama array = nilai
Menyimpan 10 buah data bertipe float.
Penomoran array secara default dimulai dari subscript 0 , bukan 1.
Tipe data yang digunakan pada array
Dapat berupa tipe data dasar , tipe data terstruktur .
Pemberian Nilai Awal
contoh :
int angka [10]= {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
Pendefinisian array bertipe angka yang terdiri 12 elemen bertipe data int .
Atau
int angka [ ]= {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
Secara otomatis kompiler akan menghitungnya sendiri
CONTOH PROGRAM
CONTOH PROGRAM
#include <stdio.h> #incluade <conio.h> #include <math.h> void main() { int N,I; float angka [10],Rerata, Total=0; /*Masukkan Jumlah Data */ Printf ("Banyaknya Data (Maksimum 10 buah angka)?"); scanf ("%d", &N); printf ("\n"); /*Masukan Data dari ke 0 sampai dengan ke N-1*/ /* dan hitung nilai totalnya*/ for(I=0;I<N;I++) { printf ("Nilai Data ke %d?" , I+1); scanf ("%f", &angka[I]); Total = Total+angka[I]; } /*Hitung Nilai Rata-ratanya*/ for(I=0;I<N;I++) Rerata=Total/N; /* Tampilkan Hasilnya*/ printf("\nJumlah Data = %d\n" , N); printf("Total Nilai = %f\n" , Total); printf("Rata-rata Nilai = %f\n" , Rerata); //printf("Devisi Standar = %f", SD); getch(); |