PDA

View Full Version : [ask]array in c++ & delphi


asakura_lanaya
03-30-2009, 07:57 AM
mohon maaf klo saya ini masi newbie
mas anvie saiya mau bertanya tentang array di delphi sama c++

pertanyaan :
1. bagaimana cara mendeklarasikan variable array di delphi sama di c++ di bagian parameter function (saiya memakai function):wacko:
2. seandainya saya memakai variable array di suatu function bagaimana cara pemindahan variable array ini ke function yang lain ? terus juga parameter functionnya gmn :-?. CMIIW (correct me if i wrong)

klo bisa disertai contohnya, simple program aja makasih

tolong ya mas anvie dan kk - kk yang lain :D

void
03-31-2009, 02:31 AM
maaf, saya ikutan nongkrong di thread ini. saya coba jawab tapi pakai C dan langsung contoh karena saya tidak bisa teori :( *maklum masih newbie* . langsung saja, berikut ini contoh source menggunakan array
#include <stdio.h>
#include <stdlib.h>

void foo(int i, char **sz_bar)
{
static int x, y;

for (x = 0; x < i; x++) {
printf("partai %s [", sz_bar[x]);
for (y = 0; y < 10; y++) {
printf("=");
fflush(stdout);
sleep(1);
}
printf("]\n");
}
}

int main()
{
static char *sz_party[] = {"kelapa",
"mangga",
"durian",
"pepaya"};

foo(4, sz_party);
return 0;
}

setelah dieksekusi / dijalankan maka array string yang ada pada fungsi main akan di-pass ke fungsi foo. kurang lebih seperti ini:
bash-4.0$ # compile contohnya
bash-4.0$ gcc -s -o test test.c
bash-4.0$ # jalankan
bash-4.0$ ./test
partai kelapa [==========]
partai mangga [==========]
partai durian [==========]
partai pepaya [=======^c
bash-4.0$

maaf kalau ada salah, maklum masih newbie :malu:

asakura_lanaya
03-31-2009, 09:12 PM
maaf, saya ikutan nongkrong di thread ini. saya coba jawab tapi pakai C dan langsung contoh karena saya tidak bisa teori :( *maklum masih newbie* . langsung saja, berikut ini contoh source menggunakan array
#include <stdio.h>
#include <stdlib.h>

void foo(int i, char **sz_bar)
{
static int x, y;

for (x = 0; x < i; x++) {
printf("partai %s [", sz_bar[x]);
for (y = 0; y < 10; y++) {
printf("=");
fflush(stdout);
sleep(1);
}
printf("]\n");
}
}

int main()
{
static char *sz_party[] = {"kelapa",
"mangga",
"durian",
"pepaya"};

foo(4, sz_party);
return 0;
}
setelah dieksekusi / dijalankan maka array string yang ada pada fungsi main akan di-pass ke fungsi foo. kurang lebih seperti ini:
bash-4.0$ # compile contohnya
bash-4.0$ gcc -s -o test test.c
bash-4.0$ # jalankan
bash-4.0$ ./test
partai kelapa [==========]
partai mangga [==========]
partai durian [==========]
partai pepaya [=======^c
bash-4.0$maaf kalau ada salah, maklum masih newbie :malu:

om dijelasin dunk T_T, itu code nya masih tergolong berat nih walaupun keliatan sederhana masih banyak dictionary yg kudu dipelajari...

static itu type apa toh --"
terus ** ? pointer ? kok bintang 2

tolong di jelasin donk line di bawah ini maksudnya apa =="
fflush(stdout);
sleep(1);
foo(4, sz_party);

makasih untuk om void ^_^

void
04-01-2009, 05:52 PM
dengan sangat berat saya mengucapkan mohon maaf yang sebesar2nya karena saya sangat lemah pada teori pemrograman, maklum saya belajar secara otodidak ( berhubung saya termasuk generasi putus sekolah :( ).
static itu keyword yang gunanya untuk menjaga agar nilai dari sebuah variabel / fungsi tetap tersimpan setelah melalui operasi (cmiiw).
sebenarnya pointer **argv itu sama saja dengan *argv[] , jadi kedua hal ini sebenarnya sama:
int main(int argc, char *argv[])
// dan
int main(int argc, char **argv)
fflush itu gunanya untuk menampilkan data yang telah diproses dengan segera.
sleep gunanya untuk menghentikan sejenak eksekusi dalam hitungan detik.
foo adalah nama fungsi. parameter pertama (4) adalah jumlah anggota pada array sz_party

oh iya, saya sering sekali menggunakan variabel static karena pada kondisi tertentu nilai sebuah variabel bisa tiba2 berubah. misalnya ada keygen yang nilainya berubah jika user memindahkan focus dari textbox serial (ini hanya contoh).

asakura_lanaya
04-02-2009, 07:27 PM
owww. masi void ane mau tanya lagi nih, itu kan nilai dari isi sebuah array nya kan udah ditentuin terus dibukanya pake looping (maaf klo salah), bisa buatin lagi ga, array dalam function tapi inputnya disertai looping nah abis itu variable tadi di transfer ke function lain ..... tolong banget >_<

void
04-04-2009, 01:29 AM
nah, sesuai permintaan, tadi saya sudah buatkan menggunakan C++ :) tapi belum diperiksa dengan saksama karena dibuat dalam tempo yang sesingkat-singkatnya. ini sourcenya dengan keterangan seadanya. mohon dikoreksi jika ada yang salah.
#include <iostream>

using namespace::std;

/**
* tampilkan
* fungsi ini akan menampilkan array pada terminal/console
* @param jml jumlah elemen pada array
* @param arr array yang akan ditampilkan
* @return void
*/
void tampilkan(int jml, char **arr)
{
cout << "----- fungsi tampilkan -----" << endl;
for (int i = 0; i < jml; i++) {
cout << "elemen ke-" << (i + 1) << " adalah: " << arr[i] << endl;
}
cout << "selesai" << endl;
}


/**
* entry point.
* aplikasi mulai dieksekusi dari sini.
* @param argc adalah jumlah argumen pada command line
* @param argv adalah array yang berisi argumen pada command line
* @return 0
*/
int main(int argc, char **argv)
{
char **buffer;
static int i, jumlah, ukuran;

// meminta user memasukkan jumlah elemen array
// TODO: check apakah user memasukkan angka
cout << "masukkan jumlah array: ";
cin >> jumlah;

// meminta user memasukkan ukuran buffer untuk tiap elemen
// TODO: check apakah user memasukkan angka
cout << "masukkan ukuran elemen array: ";
cin >> ukuran;

// alokasi memori untuk menampung array (buffer)
// dan minta agar user untuk memasukkan elemen pada array
for (i = 0; i < jumlah; i++) {
buffer[i] = new char[ukuran];
cout << "masukkan elemen ke-" << (i + 1) << ": ";
cin >> buffer[i];
}

// lakukan operasi terhadap array pada fungsi lain
// di sini contohnya adalah fungsi tampilkan
tampilkan(jumlah, buffer);

// cleanup
for (i = 0; i < jumlah; i++) {
delete[] buffer[i];
}

// selesai
return 0;
}
jika dieksekusi maka akan seperti ini hasilnya:
bash-4.0$ # kompile sourcenya tanpa debugging symbol
bash-4.0$ g++ -s -o test test.cpp
bash-4.0$ # jalankan aplikasi hasil kompilasi
bash-4.0$ ./test
masukkan jumlah array: 3
masukkan ukuran elemen array: 10
masukkan elemen ke-1: hello
masukkan elemen ke-2: world
masukkan elemen ke-3: ansav
----- fungsi tampilkan -----
elemen ke-1 adalah: hello
elemen ke-2 adalah: world
elemen ke-3 adalah: ansav
selesai
bash-4.0$

asakura_lanaya
04-29-2009, 12:15 PM
itu ada kata "New" Itu buat apa ya ? :)

void
04-30-2009, 02:41 AM
itu ada kata "New" Itu buat apa ya ? :)
new pada contoh fungsinya untuk mengalokasikan memori, dan untuk dealokasi memori menggunakan delete :) , kalau dalam bahasa C, sama dengan malloc dan free

lynxluna
04-30-2009, 04:11 AM
new pada contoh fungsinya untuk mengalokasikan memori, dan untuk dealokasi memori menggunakan delete :) , kalau dalam bahasa C, sama dengan malloc dan free

Beda atuh, malloc endak manggil constructor, dan free endak manggil destructor. *koreksi dikit* :top:

void
04-30-2009, 04:12 PM
Beda atuh, malloc endak manggil constructor, dan free endak manggil destructor. *koreksi dikit* :top:
terima kasih atas koreksinya om :top: